Added updated seafile stack config and files
This commit is contained in:
90
stacks/seafile/.env
Normal file
90
stacks/seafile/.env
Normal 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
|
||||
@@ -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.
|
||||
|
||||
45
stacks/seafile/md-server.yml
Normal file
45
stacks/seafile/md-server.yml
Normal 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
|
||||
28
stacks/seafile/notification-server.yml
Normal file
28
stacks/seafile/notification-server.yml
Normal 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
28
stacks/seafile/seadoc.yml
Normal 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
|
||||
96
stacks/seafile/seafile-server.yml
Normal file
96
stacks/seafile/seafile-server.yml
Normal 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
|
||||
@@ -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
|
||||
|
||||
46
stacks/seafile/seasearch.yml
Normal file
46
stacks/seafile/seasearch.yml
Normal 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
|
||||
@@ -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=sO6z6GatkU3H4wuuEyl0AEziupiya6pjlRa9dDTw
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user