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