# vi: ft=yaml version: '3' networks: traefik: external: true seafile: volumes: data: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/seafile/data" db: driver_opts: type: "nfs" o: "addr=lewis.dmz,nolock,soft,rw" device: ":/mnt/data/seafile/db" services: db: image: mariadb:10.5 environment: - MYSQL_ROOT_PASSWORD={{ db_root_passwd }} - MYSQL_LOG_CONSOLE=true volumes: - type: volume source: db target: /var/lib/mysql volume: nocopy: true networks: - seafile memcached: image: memcached:1.6 entrypoint: memcached -m 256 networks: - seafile seafile: image: seafileltd/seafile-mc:9.0.10 volumes: - type: volume source: data target: /shared volume: nocopy: true environment: - DB_HOST=db - DB_ROOT_PASSWD={{ db_root_passwd }} - TIME_ZONE=Europe/Amsterdam - SEAFILE_ADMIN_EMAIL={{ seafile_admin_email }} - SEAFILE_ADMIN_PASSWORD={{ seafile_admin_password }} - SEAFILE_SERVER_LETSENCRYPT=false - SEAFILE_SERVER_HOSTNAME={{ seafile_domain }} deploy: labels: - traefik.enable=true - traefik.http.routers.seafile.entrypoints=websecure - traefik.http.routers.seafile.rule=Host(`{{ seafile_domain }}`) - traefik.http.routers.seafile.tls=true - traefik.http.routers.seafile.tls.certresolver=letsencrypt - traefik.http.services.seafile.loadbalancer.server.port=80 - traefik.http.routers.seafile.service=seafile - traefik.docker.network=traefik depends_on: - db - memcached networks: - traefik - seafile