volumes: nextcloud: name: nextcloud nextcloud-data: name: nextcloud-data driver: local driver_opts: type: none device: ${NEXTCLOUD_DATA_PATH} o: bind nextcloud-config: name: nextcloud-config nextcloud-db: name: nextcloud-db nextcloud-redis: name: nextcloud-redis networks: proxy: external: true nextcloud: name: nextcloud external: false services: nextcloud: image: nextcloud:stable-fpm-alpine restart: unless-stopped volumes: - nextcloud:/var/www/html - nextcloud-data:/var/www/html/data - nextcloud-config:/var/www/html/config depends_on: - db - redis networks: - nextcloud environment: MYSQL_PASSWORD: ${DB_PASS} POSTGRES_USER: ${DB_USER} MYSQL_USER: ${DB_NAME} MYSQL_HOST: db:3306 REDIS_HOST: redis NEXTCLOUD_ADMIN_USER: ${NEXTCLOUD_ADMIN_USER} NEXTCLOUD_ADMIN_PASSWORD: ${NEXTCLOUD_ADMIN_PASS} NEXTCLOUD_TRUSTED_DOMAINS: nextcloud-asu.ddnss.de VIRTUAL_HOST: nextcloud nginx: image: nginx:alpine restart: unless-stopped labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.entrypoints=web" - "traefik.http.routers.nextcloud.rule=Host(`nextcloud-asu.ddnss.de`)" - "traefik.http.routers.nextcloud.middlewares=nextcloud" - "traefik.http.middlewares.nextcloud.redirectscheme.scheme=https" - "traefik.http.routers.nextcloud-secure.entrypoints=websecure" - "traefik.http.routers.nextcloud-secure.rule=Host(`nextcloud-asu.ddnss.de`)" - "traefik.http.routers.nextcloud-secure.service=nextcloud-secure" - "traefik.http.routers.nextcloud-secure.tls=true" - "traefik.http.routers.nextcloud-secure.tls.certresolver=myresolver" - "traefik.http.services.nextcloud-secure.loadbalancer.server.port=80" - "traefik.http.routers.nextcloud-secure.middlewares=nextcloud-secure,nextcloud-redirect" - "traefik.http.middlewares.nextcloud-secure.headers.stsSeconds=15552000" - "traefik.http.middlewares.nextcloud-secure.headers.stsPreload=true" - "traefik.http.middlewares.nextcloud-redirect.redirectregex.permanent=true" - "traefik.http.middlewares.nextcloud-redirect.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav" - "traefik.http.middlewares.nextcloud-redirect.redirectregex.replacement=https://$${1}/remote.php/dav/" depends_on: - nextcloud networks: - proxy - nextcloud volumes: - nextcloud:/var/www/html - ${PWD}/nextcloud.conf:/etc/nginx/conf.d/default.conf db: image: mysql:9 restart: unless-stopped volumes: - nextcloud-db:/var/lib/mysql networks: - nextcloud environment: MYSQL_ROOT_PASSWORD: ${DB_PASS} MYSQL_PASSWORD: ${DB_PASS} MYSQL_USER: ${DB_USER} MYSQL_DATABASE: ${DB_NAME} redis: image: redis:alpine restart: unless-stopped volumes: - nextcloud-redis:/data networks: - nextcloud healthcheck: test: ["CMD-SHELL", "redis-cli ping"]