{ "$schema": "../dynamic-compose-schema.json", "services": [ { "name": "nextcloud", "image": "nextcloud:26.0.13-apache", "isMain": true, "internalPort": 80, "environment": { "POSTGRES_HOST": "db-nextcloud", "REDIS_HOST": "redis-nextcloud", "POSTGRES_PASSWORD": "tipi", "POSTGRES_USER": "tipi", "POSTGRES_DB": "nextcloud", "NEXTCLOUD_ADMIN_USER": "${NEXTCLOUD_ADMIN_USER}", "NEXTCLOUD_ADMIN_PASSWORD": "${NEXTCLOUD_ADMIN_PASSWORD}", "NEXTCLOUD_TRUSTED_DOMAINS": "${APP_DOMAIN}", "TRUSTED_PROXIES": "172.16.0.0/12", "OVERWRITEPROTOCOL": "${APP_PROTOCOL:-http}" }, "dependsOn": ["db-nextcloud", "redis-nextcloud"], "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/nextcloud", "containerPath": "/var/www/html" } ], "extraLabels": { "traefik.http.middlewares.nextcloud.headers.browserXSSFilter": "true", "traefik.http.middlewares.nextcloud.headers.contentTypeNosniff": "true", "traefik.http.middlewares.nextcloud.headers.stsIncludeSubdomains": "true", "traefik.http.middlewares.nextcloud.headers.stsPreload": "true", "traefik.http.middlewares.nextcloud.headers.stsSeconds": "155520011", "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/", "traefik.http.routers.nextcloud.middlewares": "nextcloud,nextcloud_redirect,nextcloud-https", "traefik.http.middlewares.nextcloud.headers.customRequestHeaders.X-Forwarded-Proto": "https", "traefik.http.middlewares.nextcloud-https.redirectscheme.scheme": "https", "traefik.http.routers.nextcloud-http.middlewares": "nextcloud-https@docker" } }, { "name": "db-nextcloud", "image": "postgres:14.2", "environment": { "POSTGRES_PASSWORD": "tipi", "POSTGRES_USER": "tipi", "POSTGRES_DB": "nextcloud" }, "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/db", "containerPath": "/var/lib/postgresql/data" } ] }, { "name": "redis-nextcloud", "image": "redis:6.2.6", "user": "1000:1000", "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/redis", "containerPath": "/data" } ] }, { "name": "cron", "image": "nextcloud:25.0.13-apache", "dependsOn": ["db-nextcloud", "redis-nextcloud"], "volumes": [ { "hostPath": "${APP_DATA_DIR}/data/nextcloud", "containerPath": "/var/www/html" } ], "entrypoint": "/cron.sh" } ] }