version: '3.8' services: seafile-server: image: ggogel/seafile-server:11.0.12 volumes: - seafile-data:/shared environment: - DB_HOST=db - DB_ROOT_PASSWD=db_dev - TIME_ZONE=Europe/Berlin - HTTPS=true - SEAFILE_URL=seafile.mydomain.com # Mandatory on first deployment! networks: - seafile-net depends_on: db: condition: service_healthy healthcheck: test: ["CMD", "nc", "-z", "localhost", "8082"] interval: 10s timeout: 10s retries: 3 restart: unless-stopped seahub: image: ggogel/seahub:11.0.12 volumes: - seafile-data:/shared - seahub-avatars:/shared/seafile/seahub-data/avatars - seahub-custom:/shared/seafile/seahub-data/custom environment: - SEAFILE_ADMIN_EMAIL=me@example.com - SEAFILE_ADMIN_PASSWORD=asecret networks: - seafile-net depends_on: db: condition: service_healthy seafile-server: condition: service_healthy restart: unless-stopped seahub-media: image: ggogel/seahub-media:11.0.12 volumes: - seahub-avatars:/usr/share/caddy/media/avatars - seahub-custom:/usr/share/caddy/media/custom networks: - seafile-net restart: unless-stopped db: image: mariadb:10.11.9 environment: - MYSQL_ROOT_PASSWORD=db_dev - MYSQL_LOG_CONSOLE=true - MARIADB_AUTO_UPGRADE=true volumes: - seafile-mariadb:/var/lib/mysql networks: - seafile-net healthcheck: test: ["CMD", "healthcheck.sh", "--su-mysql", "--connect", "--innodb_initialized"] interval: 10s timeout: 10s retries: 3 restart: unless-stopped memcached: image: memcached:1.6.32 entrypoint: memcached -m 1024 networks: - seafile-net restart: unless-stopped seafile-caddy: image: ggogel/seafile-caddy:2.8.4 ports: - "80:80" # Point your reverse proxy to port 80 of this service networks: - seafile-net - default restart: unless-stopped networks: seafile-net: internal: true volumes: seafile-data: seafile-mariadb: seahub-avatars: seahub-custom: