83 lines
2.9 KiB
JSON
83 lines
2.9 KiB
JSON
|
|
{
|
||
|
|
"$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"
|
||
|
|
}
|
||
|
|
]
|
||
|
|
}
|