Files
docker-compose/cloud/docker-compose.yml
T

131 lines
4.7 KiB
YAML

services:
db:
image: mariadb:10.6
container_name: nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- /mnt/user/appdata/nextcloud/db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${MYSQL_ROOT_PASSWORD}
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/mariadb-icon.png"
folder.view3: "Databases"
redis:
image: redis
container_name: nextcloud-cache
volumes:
- /mnt/user/appdata/nextcloud/cache:/data
command: redis-server --requirepass ${REDIS_HOST_PASSWORD}
labels:
net.unraid.docker.icon: "https://cdn.jsdelivr.net/gh/selfhst/icons@main/png/redis.png"
folder.view3: "Databases"
proxy:
image: caddy:latest
container_name: nextcloud-proxy
hostname: nextcloud-proxy
volumes:
- /mnt/user/appdata/nextcloud/proxy/Caddyfile:/etc/caddy/Caddyfile
depends_on:
- app
networks:
- default
- pangolin
- traefik_proxy
labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
net.unraid.docker.webui: "https://${DOMAIN}"
folder.view3: "Networking"
pangolin.public-resources.nextcloud-server.name: "${RESOURCE_NAME}"
pangolin.public-resources.nextcloud-server.full-domain: "${DOMAIN}"
pangolin.public-resources.nextcloud-server.protocol: "http"
pangolin.public-resources.nextcloud-server.auth.sso-enabled: false
pangolin.public-resources.nextcloud-server.targets[0].method: "http"
pangolin.public-resources.nextcloud-server.targets[0].hostname: "nextcloud-proxy"
pangolin.public-resources.nextcloud-server.targets[0].port: 8080
# local proxy
traefik.enable: true
traefik.http.services.cloud.loadbalancer.server.port: 8080
traefik.http.routers.cloud.rule: "Host(`${DOMAIN}`)"
traefik.http.routers.cloud.entrypoints: websecure
traefik.http.routers.cloud.tls: true
traefik.http.routers.cloud.tls.certresolver: cloudflare
traefik.http.routers.cloud.tls.domains[0].main: "*.homecube.org"
app:
image: nextcloud:34
container_name: nextcloud
depends_on:
- db
- redis
volumes:
- /mnt/user/appdata/nextcloud/app:/var/www/html
- /mnt/user/nextcloud-data:/var/www/html/data
environment:
- NEXTCLOUD_ADMIN_USER=${NEXTCLOUD_ADMIN_USER}
- NEXTCLOUD_ADMIN_PASSWORD=${NEXTCLOUD_ADMIN_PASSWORD}
- NEXTCLOUD_TRUSTED_DOMAINS=${DOMAIN}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${MYSQL_PASSWORD}
- MYSQL_HOST=db
- REDIS_HOST=redis
- REDIS_PORT=6379
- REDIS_HOST_PASSWORD=${REDIS_HOST_PASSWORD}
- APACHE_BODY_LIMIT=0
labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
net.unraid.docker.webui: "https://${DOMAIN}"
folder.view3: "Services"
euro-office:
image: ghcr.io/euro-office/documentserver:latest
container_name: euro-office
networks:
- pangolin
- traefik_proxy
environment:
- JWT_ENABLED=true
- JWT_SECRET=${EURO_OFFICE_SECRET}
labels:
net.unraid.docker.icon: "https://raw.githubusercontent.com/linuxserver/docker-templates/refs/heads/master/linuxserver.io/img/nextcloud-icon.png"
net.unraid.docker.webui: "https://${OFFICE_DOMAIN}"
folder.view3: "Infrastructure"
pangolin.public-resources.euro-office.name: "${OFFICE_RESOURCE_NAME}"
pangolin.public-resources.euro-office.full-domain: "${OFFICE_DOMAIN}"
pangolin.public-resources.euro-office.protocol: "http"
pangolin.public-resources.euro-office.auth.sso-enabled: false
pangolin.public-resources.euro-office.targets[0].method: "http"
pangolin.public-resources.euro-office.targets[0].hostname: "euro-office"
pangolin.public-resources.euro-office.targets[0].port: 80
# local proxy
traefik.enable: true
traefik.http.services.office.loadbalancer.server.port: 80
traefik.http.routers.office.rule: "Host(`${OFFICE_DOMAIN}`)"
traefik.http.routers.office.entrypoints: websecure
traefik.http.routers.office.tls: true
traefik.http.routers.office.tls.certresolver: cloudflare
traefik.http.routers.office.tls.domains[0].main: "*.homecube.org"
networks:
pangolin:
name: pangolin_net
external: true
traefik_proxy:
external: true