78 lines
2.5 KiB
YAML
78 lines
2.5 KiB
YAML
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"
|