services: db: image: ${SEAFILE_DB_IMAGE:-mariadb:10.11} container_name: seafile-mysql environment: - MYSQL_ROOT_PASSWORD=${SEAFILE_DB_ROOT_PASSWORD} - MYSQL_LOG_CONSOLE=true - MARIADB_AUTO_UPGRADE=1 volumes: - seafile_db:/var/lib/mysql healthcheck: test: [ "CMD", "/usr/local/bin/healthcheck.sh", "--connect", "--mariadbupgrade", "--innodb_initialized", ] interval: 20s start_period: 30s timeout: 5s retries: 10 memcached: image: memcached:1.6.29 container_name: seafile-memcached entrypoint: memcached -m 256 seafile: image: seafileltd/seafile-mc:12.0-latest container_name: seafile ports: - "8017:80" environment: - DB_HOST=db - DB_PORT=3306 - DB_USER=${SEAFILE_DB_USER} - DB_ROOT_PASSWD=${SEAFILE_DB_ROOT_PASSWORD} - DB_PASSWORD=${SEAFILE_DB_PASSWORD} - SEAFILE_MYSQL_DB_CCNET_DB_NAME=ccnet_db - SEAFILE_MYSQL_DB_SEAFILE_DB_NAME=seafile_db - SEAFILE_MYSQL_DB_SEAHUB_DB_NAME=seahub_db - TIME_ZONE=${TZ} - INIT_SEAFILE_ADMIN_EMAIL=${SEAFILE_ADMIN_EMAIL} - INIT_SEAFILE_ADMIN_PASSWORD=${SEAFILE_ADMIN_PASSWORD} - SEAFILE_SERVER_HOSTNAME=${HOST_SEAFILE}.${DOMAIN} - SEAFILE_SERVER_PROTOCOL=https - SITE_ROOT=${SITE_ROOT:-/} - NON_ROOT=${NON_ROOT:-false} - JWT_PRIVATE_KEY=${SEAFILE_JWT_PRIVATE_KEY} - SEAFILE_LOG_TO_STDOUT=${SEAFILE_LOG_TO_STDOUT:-false} - ENABLE_SEADOC=${ENABLE_SEADOC:-true} - SEADOC_SERVER_URL=https://${HOST_SEAFILE}.${DOMAIN}/sdoc-server volumes: - seafile_data:/shared:rw - type: bind source: ${ROOT_INSTALL}/data/seafile target: /seafile-fuse bind: propagation: rshared privileged: true cap_add: - SYS_ADMIN labels: caddy: https://${HOST_SEAFILE}.${DOMAIN} caddy.reverse_proxy: "{{upstreams 80}}" depends_on: db: condition: service_healthy memcached: condition: service_started volumes: seafile_db: seafile_data: