85 lines
3.3 KiB
YAML
85 lines
3.3 KiB
YAML
services:
|
|
nextcloud:
|
|
image: nextcloud:33.0.2-apache@sha256:39b2ba219271a22851f8409a7b1295d5892aba1696d9193500311c02e60591a4
|
|
container_name: nextcloud
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- nextcloud-postgres
|
|
- nextcloud-redis
|
|
environment:
|
|
TZ: Europe/Berlin
|
|
POSTGRES_HOST: nextcloud-postgres
|
|
POSTGRES_DB: nextcloud
|
|
POSTGRES_USER: nextcloud
|
|
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
|
|
REDIS_HOST: nextcloud-redis
|
|
NEXTCLOUD_ADMIN_USER_FILE: /run/secrets/admin_user
|
|
NEXTCLOUD_ADMIN_PASSWORD_FILE: /run/secrets/admin_password
|
|
NEXTCLOUD_DATA_DIR: /var/www/html/data
|
|
NEXTCLOUD_TRUSTED_DOMAINS: cloud.kaleschke.info
|
|
TRUSTED_PROXIES: 172.16.0.0/12
|
|
OVERWRITEHOST: cloud.kaleschke.info
|
|
OVERWRITEPROTOCOL: https
|
|
OVERWRITECLIURL: https://cloud.kaleschke.info
|
|
volumes:
|
|
- /mnt/user/appdata/nextcloud/html:/var/www/html
|
|
- /mnt/user/documents/nextcloud-data:/var/www/html/data
|
|
- /mnt/user/appdata/secrets/nextcloud_postgres_password.txt:/run/secrets/postgres_password:ro
|
|
- /mnt/user/appdata/secrets/nextcloud_admin_user.txt:/run/secrets/admin_user:ro
|
|
- /mnt/user/appdata/secrets/nextcloud_admin_password.txt:/run/secrets/admin_password:ro
|
|
networks:
|
|
- frontend_net
|
|
- nextcloud_internal
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
labels:
|
|
- "traefik.enable=true"
|
|
- "traefik.docker.network=frontend_net"
|
|
- "traefik.http.routers.nextcloud.rule=Host(`cloud.kaleschke.info`)"
|
|
- "traefik.http.routers.nextcloud.entrypoints=websecure"
|
|
- "traefik.http.routers.nextcloud.tls=true"
|
|
- "traefik.http.routers.nextcloud.tls.certresolver=le"
|
|
- "traefik.http.routers.nextcloud.middlewares=nextcloud-redirectregex"
|
|
- "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.permanent=true"
|
|
- "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.regex=https://(.*)/.well-known/(?:card|cal)dav"
|
|
- "traefik.http.middlewares.nextcloud-redirectregex.redirectregex.replacement=https://$${1}/remote.php/dav"
|
|
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
|
|
|
|
nextcloud-postgres:
|
|
image: postgres:18.4@sha256:8ff36f3c66371cba71d20ceedccfc3de9669a68737607888c4ef0af93abe8e39
|
|
container_name: nextcloud-postgres
|
|
restart: unless-stopped
|
|
environment:
|
|
TZ: Europe/Berlin
|
|
POSTGRES_DB: nextcloud
|
|
POSTGRES_USER: nextcloud
|
|
POSTGRES_PASSWORD_FILE: /run/secrets/postgres_password
|
|
PGDATA: /var/lib/postgresql/data
|
|
volumes:
|
|
- /mnt/user/appdata/nextcloud/postgres:/var/lib/postgresql/data
|
|
- /mnt/user/appdata/secrets/nextcloud_postgres_password.txt:/run/secrets/postgres_password:ro
|
|
networks:
|
|
- nextcloud_internal
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
nextcloud-redis:
|
|
image: redis:7.4-alpine@sha256:6ab0b6e7381779332f97b8ca76193e45b0756f38d4c0dcda72dbb3c32061ab99
|
|
container_name: nextcloud-redis
|
|
restart: unless-stopped
|
|
command: redis-server --save 60 1 --loglevel warning
|
|
volumes:
|
|
- /mnt/user/appdata/nextcloud/redis:/data
|
|
networks:
|
|
- nextcloud_internal
|
|
security_opt:
|
|
- no-new-privileges:true
|
|
|
|
networks:
|
|
frontend_net:
|
|
external: true
|
|
|
|
nextcloud_internal:
|
|
driver: bridge
|
|
internal: true
|