LemonSec/examples/nextcloud-compose.yml

62 lines
1.9 KiB
YAML

# Example: Nextcloud with LemonSec
# Add this to your docker-compose.yml or run separately
version: "3.8"
networks:
services:
external: true # Use the existing network from main compose
volumes:
nextcloud-data:
nextcloud-db:
services:
nextcloud-db:
image: mariadb:10.11
container_name: nextcloud-db
restart: unless-stopped
networks:
- services
environment:
- MYSQL_ROOT_PASSWORD=${NEXTCLOUD_MYSQL_ROOT_PASSWORD}
- MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
volumes:
- nextcloud-db:/var/lib/mysql
labels:
- "traefik.enable=false"
nextcloud:
image: nextcloud:29-apache
container_name: nextcloud
restart: unless-stopped
networks:
- services
environment:
- MYSQL_PASSWORD=${NEXTCLOUD_MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.lemonlink.eu
- OVERWRITEPROTOCOL=https
- OVERWRITEHOST=cloud.lemonlink.eu
- OVERWRITECLIURL=https://cloud.lemonlink.eu
volumes:
- nextcloud-data:/var/www/html
depends_on:
- nextcloud-db
labels:
- "traefik.enable=true"
# External access
- "traefik.http.routers.nextcloud.rule=Host(`cloud.lemonlink.eu`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=letsencrypt"
- "traefik.http.routers.nextcloud.middlewares=authelia@docker,nextcloud-dav"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
# Nextcloud DAV fix
- "traefik.http.middlewares.nextcloud-dav.redirectregex.permanent=true"
- "traefik.http.middlewares.nextcloud-dav.redirectregex.regex=^https://(.*)/.well-known/(card|cal)dav"
- "traefik.http.middlewares.nextcloud-dav.redirectregex.replacement=https://$${1}/remote.php/dav/"