version: '3.8' services: seafile-db: container_name: seafile-db environment: MYSQL_LOG_CONSOLE: "true" MYSQL_ROOT_PASSWORD: ${SEAFILE_DB_ROOT_PASSWORD} image: mariadb:10.1 networks: - seafile-backend volumes: - seafile_db:/var/lib/mysql:rw restart: unless-stopped seafile-memcached: container_name: seafile-memcached entrypoint: memcached -m 256 image: memcached:1.5.6 networks: - seafile-backend restart: unless-stopped seafile: container_name: seafile depends_on: - seafile-db - seafile-memcached environment: DB_HOST: seafile-db DB_ROOT_PASSWD: ${SEAFILE_DB_ROOT_PASSWORD} SEAFILE_ADMIN_EMAIL: ${SEAFILE_ADMIN_EMAIL} SEAFILE_ADMIN_PASSWORD: ${SEAFILE_ADMIN_PASSWORD} SEAFILE_SERVER_HOSTNAME: ${HOST_SEAFILE}.${DOMAIN} SEAFILE_SERVER_LETSENCRYPT: "false" TIME_ZONE: ${TZ} image: seafileltd/seafile-mc:latest networks: - seafile-backend - seafile-frontend restart: unless-stopped expose: - 80 volumes: - ${ROOT_INSTALL}/selfhosting/seafile/start.py:/scripts/start.py - seafile_data:/shared:rw - type: bind source: ${ROOT_INSTALL}/data/seafile-fuse target: /seafile-fuse bind: propagation: rshared privileged: true cap_add: - SYS_ADMIN labels: - traefik.enable=true - traefik.http.routers.seafile.rule=Host(`${HOST_SEAFILE}.${DOMAIN}`) - traefik.http.routers.seafile.entrypoints=https - traefik.http.routers.seafile.tls=true - traefik.docker.network=seafile-frontend networks: seafile-frontend: name: seafile-frontend seafile-backend: name: seafile-backend volumes: seafile_db: seafile_data: