Files

94 lines
2.9 KiB
YAML

services:
seafile:
image: seafileltd/seafile-mc:13.0-latest
restart: unless-stopped
environment:
- SEAFILE_SERVER_HOSTNAME=${SEAFILE_SERVER_HOSTNAME:?required}
- SEAFILE_SERVER_PROTOCOL=https
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?required}
- INIT_SEAFILE_ADMIN_EMAIL=${INIT_SEAFILE_ADMIN_EMAIL:?required}
- INIT_SEAFILE_ADMIN_PASSWORD=${INIT_SEAFILE_ADMIN_PASSWORD:?required}
- SEAFILE_MYSQL_DB_HOST=db
- SEAFILE_MYSQL_DB_PORT=3306
- SEAFILE_MYSQL_DB_USER=seafile
- SEAFILE_MYSQL_DB_PASSWORD=${DB_PASSWORD:?required}
- INIT_SEAFILE_MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:?required}
- 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_PROVIDER=redis
- REDIS_HOST=cache
- REDIS_PORT=6379
- ENABLE_NOTIFICATION_SERVER=true
- INNER_NOTIFICATION_SERVER_URL=http://notification:8083
- NOTIFICATION_SERVER_URL=https://${SEAFILE_SERVER_HOSTNAME:?required}/notification
- ENABLE_SEADOC=false
- TIME_ZONE=${TIME_ZONE:-Etc/UTC}
- SEAFILE_LOG_TO_STDOUT=true
volumes:
- seafile-data:/shared
depends_on:
db:
condition: service_healthy
cache:
condition: service_healthy
healthcheck:
test: ["CMD-SHELL", "curl -f http://localhost:80 || exit 1"]
interval: 30s
timeout: 10s
retries: 3
start_period: 2m
# Notification server: pushes library changes to web and desktop clients over WebSocket.
notification:
image: seafileltd/notification-server:13.0-latest
restart: unless-stopped
environment:
- JWT_PRIVATE_KEY=${JWT_PRIVATE_KEY:?required}
- SEAFILE_MYSQL_DB_HOST=db
- SEAFILE_MYSQL_DB_PORT=3306
- SEAFILE_MYSQL_DB_USER=seafile
- SEAFILE_MYSQL_DB_PASSWORD=${DB_PASSWORD:?required}
- SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db
- SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db
- SEAFILE_LOG_TO_STDOUT=true
depends_on:
db:
condition: service_healthy
seafile:
condition: service_healthy
# MariaDB for the ccnet, seafile and seahub databases.
db:
image: mariadb:10.11
restart: unless-stopped
environment:
- MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD:?required}
- MYSQL_LOG_CONSOLE=true
- MARIADB_AUTO_UPGRADE=1
volumes:
- db-data:/var/lib/mysql
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--mariadbupgrade", "--innodb_initialized"]
interval: 20s
start_period: 30s
timeout: 5s
retries: 10
# Redis for the Seahub cache.
cache:
image: redis:8
restart: unless-stopped
volumes:
- cache-data:/data
healthcheck:
test: ["CMD", "redis-cli", "ping"]
interval: 10s
timeout: 5s
retries: 5
volumes:
seafile-data:
db-data:
cache-data: