Added updated seafile stack config and files

This commit is contained in:
Rishi Ghan
2025-12-30 00:19:22 -05:00
parent a4892011d1
commit aec2f32707
9 changed files with 467 additions and 55 deletions

90
stacks/seafile/.env Normal file
View File

@@ -0,0 +1,90 @@
#################################
# Docker compose configurations #
#################################
COMPOSE_FILE='seafile-server.yml,seadoc.yml,seasearch.yml,notification-server.yml,md-server.yml'
COMPOSE_PATH_SEPARATOR=','
## Images
SEAFILE_IMAGE=seafileltd/seafile-pro-mc:13.0.6-testing
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_REDIS_IMAGE=redis
SEADOC_IMAGE=seafileltd/sdoc-server:2.0.3-testing
NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:13.0.0-testing
SEASEARCH_IMAGE=seafileltd/seasearch:1.0.1-testing
MD_IMAGE=seafileltd/seafile-md-server:13.0.6-testing
## Storage
SEAFILE_VOLUME=/mnt/user/appdata/seafile/data
SEAFILE_MYSQL_VOLUME=/mnt/user/appdata/seafile/db-data
SS_DATA_PATH=/mnt/user/appdata/seafile/seasearch-data
SEADOC_VOLUME=/mnt/user/appdata/seafile/seadoc-data
BASIC_STORAGE_PATH=/mnt/user/appdata/seafile
### Storage type
SEAF_SERVER_STORAGE_TYPE=disk
MD_STORAGE_TYPE=s3
SS_STORAGE_TYPE=disk
### S3 for metadata server
S3_MD_BUCKET=seafile-md
S3_KEY_ID=AKIAQP5UUFQPMDXWPW4O
S3_SECRET_KEY=<REDACT>
S3_USE_V4_SIGNATURE=true
S3_PATH_STYLE_REQUEST=false
S3_AWS_REGION=us-east-1
S3_HOST=s3.amazonaws.com
S3_USE_HTTPS=true
#################################
# Startup parameters #
#################################
SEAFILE_SERVER_HOSTNAME=fileserver.rishighan.com
SEAFILE_SERVER_PROTOCOL=https
TIME_ZONE=Etc/UTC
JWT_PRIVATE_KEY=<REDACT>
#####################################
# Third-party service configuration #
#####################################
## Database
SEAFILE_MYSQL_DB_HOST=db
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=<REDACT>
SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db
## Cache
CACHE_PROVIDER=redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
######################################
# Initial variables #
######################################
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=<REDACT>
INIT_SEAFILE_ADMIN_EMAIL=frishi@me.com
INIT_SEAFILE_ADMIN_PASSWORD=<REDACT>
INIT_SS_ADMIN_USER=frishi@me.com
INIT_SS_ADMIN_PASSWORD=<REDACT>
############################################
# Additional configurations for extensions #
############################################
## SeaDoc
ENABLE_SEADOC=true
## SeaSearch
SS_MAX_OBJ_CACHE_SIZE=10GB
SS_LOG_TO_STDOUT=true
SS_LOG_OUTPUT=true
SS_LOG_LEVEL=info
## Notification
NOTIFICATION_SERVER_URL=https://notification.rishighan.com
INNER_NOTIFICATION_SERVER_URL=http://notification-server:8083
SEADOC_SERVER_URL=https://fileserver.rishighan.com/sdoc-server
## Seafile AI
ENABLE_SEAFILE_AI=false

View File

@@ -1,31 +1,46 @@
# Seafile Stack
# Seafile Pro Stack
Seafile 13 Pro with SeaDoc, SeaSearch, Notification Server, and Metadata Server.
Seafile Pro 13.0.6 with SeaDoc, SeaSearch, Notification Server, and Metadata Server.
## Services
## Important Notes
| Service | Port | Description |
|---------|------|-------------|
| seafile | 8098:80 | Main Seafile server |
| seadoc | 8888:80 | Document collaboration |
| notification-server | 8083:8083 | Real-time notifications |
| seafile-md-server | 8084:8084 | Metadata server |
| seasearch | 4080:4080 | Full-text search |
| seafile-mysql | - | MariaDB database |
| seafile-redis | - | Redis cache |
This stack uses Seafile's official multi-file compose setup. It cannot be deployed via Portainer's git-based stack deployment due to the `COMPOSE_FILE` variable combining multiple yml files.
## Configuration Files
**Deployment method:** Run from command line with `docker compose up -d`
Copy these to `/mnt/user/appdata/seafile/` before deploying:
## Files
- `seahub_settings.py` - Seahub configuration
- `seafile.conf` - Seafile server configuration
- `.env` - All configuration variables
- `seafile-server.yml` - Main Seafile + MariaDB + Redis
- `seadoc.yml` - SeaDoc server
- `seasearch.yml` - SeaSearch server
- `notification-server.yml` - Notification server
- `md-server.yml` - Metadata server
- `seahub_settings.py` - Seahub Python config (mounted into container)
## NGINX Proxy Manager Setup
## Deployment
### fileserver.rishighan.com
```bash
cd /mnt/user/appdata/seafile
docker compose up -d
```
Create HTTPS proxy with this Advanced config:
## Volumes
All data stored in `/mnt/user/appdata/seafile/`:
- `data/` - Seafile data and file storage
- `db-data/` - MariaDB database
- `seadoc-data/` - SeaDoc data
- `seasearch-data/` - SeaSearch index
## External Dependencies
- **OnlyOffice** - Running in documents stack at `https://office.rishighan.com`
- **NPM Proxy Hosts:**
- `fileserver.rishighan.com``192.168.1.75:8098`
- `notification.rishighan.com``192.168.1.75:8083`
## NPM Advanced Config for fileserver.rishighan.com
```nginx
location / {
@@ -67,41 +82,22 @@ location /socket.io {
}
```
### notification.rishighan.com
## OnlyOffice JWT
Create separate HTTPS proxy pointing to `192.168.1.75:8083`
The JWT secret must match between `seahub_settings.py` and OnlyOffice's `/etc/onlyoffice/documentserver/local.json`. Check with:
## Migration from VM
1. Stop Seafile on VM:
```bash
ssh rishi@192.168.1.112
cd /opt/seafile && docker compose down
docker exec onlyoffice cat /etc/onlyoffice/documentserver/local.json | grep -A2 '"secret"'
```
2. Create directories:
```bash
mkdir -p /mnt/user/appdata/seafile/{data,db-data,seadoc-data,seasearch-data}
```
## Troubleshooting
3. Copy data:
```bash
rsync -avP rishi@192.168.1.112:~/seafile/data/ /mnt/user/appdata/seafile/data/
rsync -avP rishi@192.168.1.112:~/seafile/db-data/ /mnt/user/appdata/seafile/db-data/
```
### "Commit is missing" errors
The seafile data wasn't fully transferred. Re-rsync with proper permissions from source.
4. Copy config files:
```bash
cp seahub_settings.py /mnt/user/appdata/seafile/
cp seafile.conf /mnt/user/appdata/seafile/
```
### OnlyOffice "document security token" error
JWT secret mismatch. Update `ONLYOFFICE_JWT_SECRET` in `seahub_settings.py` to match OnlyOffice config.
5. Update NPM proxies to point to 192.168.1.75 instead of 192.168.1.112
6. Deploy stack via Portainer
## Notes
- Notifications only work for shared library events between users
- SeaDoc requires the `/sdoc-server/` and `/socket.io` proxy locations
- WebDAV is enabled on port 8080 at `/seafdav`
### Search returns 500 error
Check if SeaSearch is accessible: `docker exec seafile curl -s http://seafile-seasearch:4080`
Check database for missing .ibd files in mysql logs.

View File

@@ -0,0 +1,45 @@
services:
seafile-md-server:
image: ${MD_IMAGE:-seafileltd/seafile-md-server:latest}
container_name: seafile-md-server
restart: unless-stopped
volumes:
- ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
environment:
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
- SEAFILE_MYSQL_DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
- SEAFILE_MYSQL_DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
- SEAFILE_MYSQL_DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
- SEAFILE_MYSQL_DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
- SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-false}
- MD_PORT=${MD_PORT:-8084}
- MD_LOG_LEVEL=${MD_LOG_LEVEL:-info}
- MD_MAX_CACHE_SIZE=${MD_MAX_CACHE_SIZE:-1GB}
- SEAF_SERVER_STORAGE_TYPE=${SEAF_SERVER_STORAGE_TYPE:-}
- MD_STORAGE_TYPE=${MD_STORAGE_TYPE:-disk}
- S3_COMMIT_BUCKET=${S3_COMMIT_BUCKET:-}
- S3_FS_BUCKET=${S3_FS_BUCKET:-}
- S3_BLOCK_BUCKET=${S3_BLOCK_BUCKET:-}
- S3_MD_BUCKET=${S3_MD_BUCKET:-}
- S3_HOST=${S3_HOST:-}
- S3_AWS_REGION=${S3_AWS_REGION:-}
- S3_USE_HTTPS=${S3_USE_HTTPS:-true}
- S3_PATH_STYLE_REQUEST=${S3_PATH_STYLE_REQUEST:-false}
- S3_KEY_ID=${S3_KEY_ID:-}
- S3_SECRET_KEY=${S3_SECRET_KEY:-}
- S3_USE_V4_SIGNATURE=${S3_USE_V4_SIGNATURE:-true}
- S3_SSE_C_KEY=${S3_SSE_C_KEY:-}
- CACHE_PROVIDER=${CACHE_PROVIDER:-redis}
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
depends_on:
db:
condition: service_healthy
networks:
- seafile-net
networks:
seafile-net:
name: seafile-net

View File

@@ -0,0 +1,28 @@
services:
notification-server:
image: ${NOTIFICATION_SERVER_IMAGE:-seafileltd/notification-server:13.0-latest}
container_name: notification-server
restart: unless-stopped
volumes:
- ${SEAFILE_VOLUME:-/opt/seafile-data}/seafile/logs:/shared/seafile/logs
ports:
- "8083:8083"
environment:
- SEAFILE_MYSQL_DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
- SEAFILE_MYSQL_DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
- SEAFILE_MYSQL_DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
- SEAFILE_MYSQL_DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
- SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
- SEAFILE_LOG_TO_STDOUT=true
- NOTIFICATION_SERVER_LOG_LEVEL=${NOTIFICATION_SERVER_LOG_LEVEL:-info}
depends_on:
db:
condition: service_healthy
networks:
- seafile-net
networks:
seafile-net:
name: seafile-net

28
stacks/seafile/seadoc.yml Normal file
View File

@@ -0,0 +1,28 @@
services:
seadoc:
image: ${SEADOC_IMAGE:-seafileltd/sdoc-server:2.0.3-testing}
container_name: seadoc
restart: unless-stopped
volumes:
- ${SEADOC_VOLUME:-/opt/seadoc-data/}:/shared
ports:
- "8888:80"
environment:
- DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
- DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
- DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
- DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
- DB_NAME=${SEADOC_MYSQL_DB_NAME:-seahub_db}
- TIME_ZONE=${TIME_ZONE:-Etc/UTC}
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
- NON_ROOT=${NON_ROOT:-false}
- SEAHUB_SERVICE_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
depends_on:
db:
condition: service_healthy
networks:
- seafile-net
networks:
seafile-net:
name: seafile-net

View File

@@ -0,0 +1,96 @@
services:
db:
image: ${SEAFILE_DB_IMAGE:-mariadb:10.11}
container_name: seafile-mysql
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:-}
- MYSQL_LOG_CONSOLE=true
- MARIADB_AUTO_UPGRADE=1
volumes:
- "${SEAFILE_MYSQL_VOLUME:-/opt/seafile-mysql/db}:/var/lib/mysql"
networks:
- seafile-net
healthcheck:
test: ["CMD", "sh", "-c", "mysqladmin ping -h localhost -u root -p$$MYSQL_ROOT_PASSWORD"]
interval: 20s
start_period: 30s
timeout: 5s
retries: 10
redis:
image: ${SEAFILE_REDIS_IMAGE:-redis}
container_name: seafile-redis
restart: unless-stopped
command:
- /bin/sh
- -c
- redis-server --requirepass "$$REDIS_PASSWORD"
environment:
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
networks:
- seafile-net
seafile:
image: ${SEAFILE_IMAGE:-seafileltd/seafile-pro-mc:13.0.6-testing}
container_name: seafile
restart: unless-stopped
ports:
- "8098:80"
volumes:
- ${SEAFILE_VOLUME:-/opt/seafile-data}:/shared
- ${BASIC_STORAGE_PATH}/seahub_settings.py:/shared/seafile/conf/seahub_settings.py
environment:
- INIT_SEAFILE_MYSQL_ROOT_PASSWORD=${INIT_SEAFILE_MYSQL_ROOT_PASSWORD:-}
- SEAFILE_MYSQL_DB_HOST=${SEAFILE_MYSQL_DB_HOST:-db}
- SEAFILE_MYSQL_DB_PORT=${SEAFILE_MYSQL_DB_PORT:-3306}
- SEAFILE_MYSQL_DB_USER=${SEAFILE_MYSQL_DB_USER:-seafile}
- SEAFILE_MYSQL_DB_PASSWORD=${SEAFILE_MYSQL_DB_PASSWORD:?Variable is not set or empty}
- SEAFILE_MYSQL_DB_CCNET_DB_NAME=${SEAFILE_MYSQL_DB_CCNET_DB_NAME:-ccnet_db}
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=${SEAFILE_MYSQL_DB_SEAFILE_DB_NAME:-seafile_db}
- SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=${SEAFILE_MYSQL_DB_SEAHUB_DB_NAME:-seahub_db}
- TIME_ZONE=${TIME_ZONE:-Etc/UTC}
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:-me@example.com}
- INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD:-asecret}
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}
- SEAFILE_SERVER_PROTOCOL=${SEAFILE_SERVER_PROTOCOL:-http}
- SITE_ROOT=${SITE_ROOT:-/}
- NON_ROOT=${NON_ROOT:-false}
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
- SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-false}
- ENABLE_SEADOC=${ENABLE_SEADOC:-true}
- SEADOC_SERVER_URL=${SEAFILE_SERVER_PROTOCOL:-http}://${SEAFILE_SERVER_HOSTNAME:?Variable is not set or empty}/sdoc-server
- CACHE_PROVIDER=${CACHE_PROVIDER:-redis}
- REDIS_HOST=${REDIS_HOST:-redis}
- REDIS_PORT=${REDIS_PORT:-6379}
- REDIS_PASSWORD=${REDIS_PASSWORD:-}
- MEMCACHED_HOST=${MEMCACHED_HOST:-memcached}
- MEMCACHED_PORT=${MEMCACHED_PORT:-11211}
- SEAF_SERVER_STORAGE_TYPE=${SEAF_SERVER_STORAGE_TYPE:-}
- S3_COMMIT_BUCKET=${S3_COMMIT_BUCKET:-}
- S3_FS_BUCKET=${S3_FS_BUCKET:-}
- S3_BLOCK_BUCKET=${S3_BLOCK_BUCKET:-}
- S3_KEY_ID=${S3_KEY_ID:-}
- S3_SECRET_KEY=${S3_SECRET_KEY:-}
- S3_USE_V4_SIGNATURE=${S3_USE_V4_SIGNATURE:-true}
- S3_AWS_REGION=${S3_AWS_REGION:-us-east-1}
- S3_HOST=${S3_HOST:-}
- S3_USE_HTTPS=${S3_USE_HTTPS:-true}
- S3_PATH_STYLE_REQUEST=${S3_PATH_STYLE_REQUEST:-false}
- S3_SSE_C_KEY=${S3_SSE_C_KEY:-}
- INNER_NOTIFICATION_SERVER_URL=${INNER_NOTIFICATION_SERVER_URL:-http://notification-server:8083}
- NOTIFICATION_SERVER_URL=${NOTIFICATION_SERVER_URL:-}
- ENABLE_SEAFILE_AI=${ENABLE_SEAFILE_AI:-false}
- SEAFILE_AI_SERVER_URL=${SEAFILE_AI_SERVER_URL:-http://seafile-ai:8888}
- SEAFILE_AI_SECRET_KEY=${JWT_PRIVATE_KEY:?Variable is not set or empty}
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
networks:
- seafile-net
networks:
seafile-net:
name: seafile-net

View File

@@ -22,7 +22,7 @@ METADATA_SERVER_URL = 'http://seafile-md-server:8084'
ENABLE_ONLYOFFICE = True
VERIFY_ONLYOFFICE_CERTIFICATE = True
ONLYOFFICE_APIJS_URL = 'https://office.rishighan.com/web-apps/apps/api/documents/api.js'
ONLYOFFICE_JWT_SECRET = 'secret123'
ONLYOFFICE_JWT_SECRET = 'SgdxIRmL9tPORb8zdoOg9tzqTY4DBQqJ'
ONLYOFFICE_FILE_EXTENSION = ('doc', 'docx', 'ppt', 'pptx', 'xls', 'xlsx', 'odt', 'fodt', 'odp', 'fodp', 'ods', 'fods', 'csv')
ONLYOFFICE_EDIT_FILE_EXTENSION = ('docx', 'pptx', 'xlsx')
ONLYOFFICE_FORCE_SAVE = True

View File

@@ -0,0 +1,46 @@
services:
seasearch:
image: ${SEASEARCH_IMAGE:-seafileltd/seasearch:1.0.1-testing}
container_name: seafile-seasearch
restart: unless-stopped
ports:
- 4080:4080
volumes:
- ${SS_DATA_PATH:-/opt/seasearch-data}:/opt/seasearch/data
environment:
- SS_FIRST_ADMIN_USER=${INIT_SS_ADMIN_USER:-}
- SS_FIRST_ADMIN_PASSWORD=${INIT_SS_ADMIN_PASSWORD:-}
- SS_MAX_OBJ_CACHE_SIZE=${SS_MAX_OBJ_CACHE_SIZE:-10GB}
- SS_STORAGE_TYPE=${SS_STORAGE_TYPE:-disk}
- S3_SS_BUCKET=${S3_SS_BUCKET:-}
- S3_KEY_ID=${S3_KEY_ID:-}
- S3_USE_V4_SIGNATURE=${S3_USE_V4_SIGNATURE:-true}
- S3_SECRET_KEY=${S3_SECRET_KEY:-}
- S3_HOST=${S3_HOST:-}
- S3_USE_HTTPS=${S3_USE_HTTPS:-true}
- S3_PATH_STYLE_REQUEST=${S3_PATH_STYLE_REQUEST:-true}
- S3_AWS_REGION=${S3_AWS_REGION:-us-east-1}
- S3_SSE_C_KEY=${S3_SSE_C_KEY:-}
- SS_LOG_TO_STDOUT=${SS_LOG_TO_STDOUT:-false}
- SS_LOG_DIR=${SS_LOG_DIR:-/opt/seasearch/data/log}
- SS_LOG_LEVEL=${SS_LOG_LEVEL:-info}
- SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-false}
- SEATABLE_LOG_TO_STDOUT=${SEATABLE_LOG_TO_STDOUT:-false}
- SS_SERVER_MODE=${SS_SERVER_MODE:-}
- SS_CLUSTER_ID=${SS_CLUSTER_ID:-}
- SS_CLUSTER_PROXY_HOST=${SS_CLUSTER_PROXY_HOST:-0.0.0.0}
- SS_CLUSTER_PROXY_PORT=${SS_CLUSTER_PROXY_PORT:-4082}
- SS_CLUSTER_MANAGER_ADDR=${SS_CLUSTER_MANAGER_ADDR:-127.0.0.1:4081}
- SS_ETCD_USERNAME=${SS_ETCD_USERNAME:-}
- SS_ETCD_PASSWORD=${SS_ETCD_PASSWORD:-}
- SS_ETCD_ENDPOINTS=${SS_ETCD_ENDPOINTS:-127.0.0.1:2379}
- SS_ETCD_PREFIX=${SS_ETCD_PREFIX:-/zinc}
- SS_CLUSTER_PROXY_LOG_DIR=${SS_CLUSTER_PROXY_LOG_DIR:--/opt/seasearch/data/log}
- SS_CLUSTER_MANAGER_HOST=${SS_CLUSTER_MANAGER_HOST:-0.0.0.0}
- SS_CLUSTER_MANAGER_PORT=${SS_CLUSTER_MANAGER_PORT:-4081}
networks:
- seafile-net
networks:
seafile-net:
name: seafile-net

View File

@@ -1,7 +1,90 @@
MYSQL_ROOT_PASSWORD=dexter
SEAFILE_MYSQL_DB_PASSWORD=dexter
SEAFILE_SERVER_HOSTNAME=fileserver.rishighan.com
JWT_PRIVATE_KEY=Qo4s8XissWnJx6gIORcggOaU69ObAa3W84jC05yv
NOTIFICATION_SERVER_URL=https://notification.rishighan.com
#################################
# Docker compose configurations #
#################################
COMPOSE_FILE='seafile-server.yml,seadoc.yml,seasearch.yml,notification-server.yml,md-server.yml'
COMPOSE_PATH_SEPARATOR=','
## Images
SEAFILE_IMAGE=seafileltd/seafile-pro-mc:13.0.6-testing
SEAFILE_DB_IMAGE=mariadb:10.11
SEAFILE_REDIS_IMAGE=redis
SEADOC_IMAGE=seafileltd/sdoc-server:2.0.3-testing
NOTIFICATION_SERVER_IMAGE=seafileltd/notification-server:13.0.0-testing
SEASEARCH_IMAGE=seafileltd/seasearch:1.0.1-testing
MD_IMAGE=seafileltd/seafile-md-server:13.0.6-testing
## Storage
SEAFILE_VOLUME=/mnt/user/appdata/seafile/data
SEAFILE_MYSQL_VOLUME=/mnt/user/appdata/seafile/db-data
SS_DATA_PATH=/mnt/user/appdata/seafile/seasearch-data
SEADOC_VOLUME=/mnt/user/appdata/seafile/seadoc-data
BASIC_STORAGE_PATH=/mnt/user/appdata/seafile
### Storage type
SEAF_SERVER_STORAGE_TYPE=disk
MD_STORAGE_TYPE=s3
SS_STORAGE_TYPE=disk
### S3 for metadata server
S3_MD_BUCKET=seafile-md
S3_KEY_ID=AKIAQP5UUFQPMDXWPW4O
S3_SECRET_KEY=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
S3_USE_V4_SIGNATURE=true
S3_PATH_STYLE_REQUEST=false
S3_AWS_REGION=us-east-1
S3_HOST=s3.amazonaws.com
S3_USE_HTTPS=true
#################################
# Startup parameters #
#################################
SEAFILE_SERVER_HOSTNAME=fileserver.rishighan.com
SEAFILE_SERVER_PROTOCOL=https
TIME_ZONE=Etc/UTC
JWT_PRIVATE_KEY=Qo4s8XissWnJx6gIORcggOaU69ObAa3W84jC05yv
#####################################
# Third-party service configuration #
#####################################
## Database
SEAFILE_MYSQL_DB_HOST=db
SEAFILE_MYSQL_DB_USER=seafile
SEAFILE_MYSQL_DB_PASSWORD=dexter
SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db
## Cache
CACHE_PROVIDER=redis
REDIS_HOST=redis
REDIS_PORT=6379
REDIS_PASSWORD=
######################################
# Initial variables #
######################################
INIT_SEAFILE_MYSQL_ROOT_PASSWORD=dexter
INIT_SEAFILE_ADMIN_EMAIL=frishi@me.com
INIT_SEAFILE_ADMIN_PASSWORD=Titu@1588
INIT_SS_ADMIN_USER=frishi@me.com
INIT_SS_ADMIN_PASSWORD=Titu@1588
############################################
# Additional configurations for extensions #
############################################
## SeaDoc
ENABLE_SEADOC=true
## SeaSearch
SS_MAX_OBJ_CACHE_SIZE=10GB
SS_LOG_TO_STDOUT=true
SS_LOG_OUTPUT=true
SS_LOG_LEVEL=info
## Notification
NOTIFICATION_SERVER_URL=https://notification.rishighan.com
INNER_NOTIFICATION_SERVER_URL=http://notification-server:8083
SEADOC_SERVER_URL=https://fileserver.rishighan.com/sdoc-server
## Seafile AI
ENABLE_SEAFILE_AI=false