version: "3.9" networks: public: external: true services: nextcloud: image: lscr.io/linuxserver/nextcloud:latest container_name: nextcloud restart: always volumes: - "./nextcloud-config-data:/config" - "./nextcloud-data:/data" environment: - "PUID=1000" - "PGID=1000" - "TZ=Asia/Singapore" # ports: # - "443:443" networks: - public labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.rule=Host(`${NEXTCLOUD_DOMAIN}`)" - "traefik.http.routers.nextcloud.service=nextcloud-service" - "traefik.http.services.nextcloud-service.loadbalancer.server.port=443" - "traefik.http.services.nextcloud-service.loadbalancer.server.scheme=https" - "traefik.http.routers.nextcloud.tls=true" - "traefik.http.routers.nextcloud.tls.certresolver=le" # Nextcloud DAV services discovery - "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.middlewares.nextcloud-redirectregex.redirectregex.permanent=true" # HSTS - "traefik.http.middlewares.nextcloud-headers.headers.stsSeconds=15552000" # Apply middlewares - "traefik.http.routers.nextcloud.middlewares=nextcloud-redirectregex,nextcloud-headers" mariadb: image: lscr.io/linuxserver/mariadb:latest container_name: mariadb restart: always volumes: - "./mariadb-data:/config" environment: - "PUID=1000" - "PGID=1000" - "MYSQL_ROOT_PASSWORD=${DB_ROOT_PASSWORD}" - "TZ=Asia/Singapore" - "MYSQL_DATABASE=nextcloud_db" - "MYSQL_USER=nextcloud" - "MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}" # ports: # - "3306:3306" networks: - public services: collabora: image: collabora/code container_name: collabora restart: always environment: - "domain=${NEXTCLOUD_DOMAIN}" - "extra_params=--o:ssl.enable=false --o:ssl.termination=true" # ports: # - "9980:9980" networks: - public labels: - "traefik.enable=true" - "traefik.http.routers.collabora.rule=Host(`${COLLABORA_DOMAIN}`)" - "traefik.http.routers.collabora.service=collabora-service" - "traefik.http.services.collabora-service.loadbalancer.server.port=9980" - "traefik.http.routers.collabora.tls=true" - "traefik.http.routers.collabora.tls.certresolver=le"