version: '3.8' services: seafile-server: image: ggogel/seafile-server:9.0.10 volumes: - seafile-data:/shared environment: - DB_HOST=db - DB_ROOT_PASSWD=db_dev - TIME_ZONE=Europe/Berlin - SEAFILE_ADMIN_EMAIL=me@example.com - SEAFILE_ADMIN_PASSWORD=asecret - HTTPS=false # Set this to true if you plan to use a reverse proxy with HTTPS. Can be changed later in the admin settings on the web-ui. - SEAFILE_SERVER_HOSTNAME=seafile.mydomain.com # Mandatory on first deployment! networks: - seafile-net deploy: endpoint_mode: dnsrr seahub: image: ggogel/seahub:9.0.10 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 deploy: mode: replicated replicas: 4 endpoint_mode: dnsrr seahub-media: image: ggogel/seahub-media volumes: - seahub-avatars:/usr/share/caddy/media/avatars - seahub-custom:/usr/share/caddy/media/custom networks: - seafile-net deploy: mode: replicated replicas: 2 endpoint_mode: dnsrr db: image: mariadb:10.7.7 environment: - MYSQL_ROOT_PASSWORD=db_dev - MYSQL_LOG_CONSOLE=true volumes: - seafile-mariadb:/var/lib/mysql networks: - seafile-net memcached: image: memcached:1.6.17 entrypoint: memcached -m 1024 networks: - seafile-net seafile-caddy: image: ggogel/seafile-caddy:1.0.6 environment: - SWARM_DNS=true networks: - seafile-net - caddy deploy: labels: caddy: http://seafile.gogel.me caddy.reverse_proxy: "{{upstreams 80}}" networks: seafile-net: driver: overlay internal: true caddy: external: true volumes: seafile-data: driver: glusterfs name: "seafile-data" seafile-mariadb: driver: glusterfs name: "seafile-mariadb" seahub-avatars: driver: glusterfs name: "seafile-data/seafile/seahub-data/avatars" seahub-custom: driver: glusterfs name: "seafile-data/seafile/seahub-data/custom"