version: '3.7' volumes: nextcloud-db: name: docker_nextcloud-db-15 nextcloud-data: name: docker_nextcloud nextcloud: name: docker_nextcloud-conf onlyoffice-cache: name: docker_onlyoffice-cache onlyoffice-db: name: docker_onlyoffice-db networks: nextcloud: proxy: external: true services: nextcloud-app: image: nextcloud-cron:26.0.11 build: . container_name: nextcloud-app restart: unless-stopped extra_hosts : office.oasis21.org : 172.16.7.10 volumes: - nextcloud:/var/www/html - nextcloud-data:/var/www/html/data environment: - "TZ=Europe/Paris" - REDIS_HOST=redis env_file: ./secrets/librezo.secrets depends_on: - nextcloud-db - redis networks: - nextcloud - proxy labels: traefik.http.routers.nextcloud-web.entrypoints: websecure traefik.http.routers.nextcloud-web.rule: Host(`cloud.oasis21.org`) traefik.http.services.nextcloud-web.loadbalancer.server.port: 80 traefik.enable: true # https://docs.nextcloud.com/server/16/admin_manual/configuration_server/reverse_proxy_configuration.html traefik.http.routers.nextcloud-web.middlewares: nextcloud-web@docker, allowFrameAndCORS@file traefik.http.middlewares.nextcloud-web.redirectregex.permanent: true traefik.http.middlewares.nextcloud-web.redirectregex.regex: "https://(.*)/.well-known/(card|cal)dav" traefik.http.middlewares.nextcloud-web.redirectregex.replacement: "https://$${1}/remote.php/dav/" redis: image: 'bitnami/redis:7.0.10' container_name: redis restart: unless-stopped environment: - "TZ=Europe/Paris" - ALLOW_EMPTY_PASSWORD=yes env_file: ./secrets/librezo.secrets networks: - nextcloud nextcloud-db: image: postgres:15-alpine container_name: nextcloud-db volumes: - nextcloud-db:/var/lib/postgresql/data networks: - nextcloud env_file: ./secrets/librezo.secrets environment: - "TZ=Europe/Paris" restart: unless-stopped onlyoffice: build: context: . dockerfile: ./dockerfile-oo container_name: onlyoffice image: onlyoffice:7.5.1 restart: unless-stopped extra_hosts : cloud.oasis21.org : 172.16.7.10 environment: - JWT_ENABLED=true - JWT_SECRET=MvaG9zdHMgCnN1ZG8gbmFubyAvZXRjL2hvc3RzIApzY3AgVMOpbMOpY - FORCESAVE_ENABLE=true - FORCESAVE_INTERVAL=2m - FORCESAVE_STEP=5m volumes: - onlyoffice-cache:/var/lib/onlyoffice/documentserver/App_Data - onlyoffice-db:/var/lib/postgresql labels: traefik.http.routers.onlyoffice.entrypoints: websecure traefik.http.routers.onlyoffice.rule: Host(`office.oasis21.org`) traefik.http.services.onlyoffice.loadbalancer.server.port: 80 traefik.enable: true traefik.http.routers.onlyoffice.middlewares: allowFrameAndCORS@file, onlyoffice-sslheaders traefik.http.middlewares.onlyoffice-sslheaders.headers.customrequestheaders.X-Forwarded-Proto: "https" networks: - nextcloud - proxy