haha das ist genau das Problem… ich habe ein über mehrere compose files verteiltes Setup mit unterschiedlichen Diensten traefik, 2 Nextclouds, CODE, restic backup. In den compose files sind zT domains und credencials drin. Das verständlich runterzubrechen und auch einfach verständlich zu machen braucht ein Paar Tage und gewisse Motivation - die ich bisher nicht aufgebracht habe und kurzfristig wohl auch nicht aufbringen werde. Ich habe mein Setup schon mal recht detailliert beschrieben… im Moment sieht es nicht viel anders aus…
Das ist was ich aktuell im dev habe - mittlereweile würde ich einiges anders machen… könnte sein das einige Parameter nicht notwendig sind… non-root UID/PID habe angefangen aber noch nicht abgeschlossen. Aber wenn es dir hilft
cat compose.yml
version: "3.3"
services:
dev-nextcloud-db:
image: mariadb:10.5
container_name: dev-nextcloud-db
command: --transaction-isolation=READ-COMMITTED --log-bin=ROW
restart: unless-stopped
volumes:
#- /etc/localtime:/etc/localtime:ro
#- /etc/timezone:/etc/timezone:ro
- ./db:/var/lib/mysql
- ./db-config/my.cnf:/etc/mysql/conf.d/my.cnf
- ./db-backup:/mnt/db-backup
env_file:
- ./db.env
dev-nextcloud-redis:
image: redis:alpine
container_name: dev-nextcloud-redis
command: redis-server --requirepass ${REDIS_HOST_PASSWORD}
env_file:
- ./redis.env
restart: unless-stopped
dev-nextcloud-app:
image: nextcloud:${NEXTCLOUD_VERSION}
#build:
# context: .
# dockerfile: ./nextcloud_with_smb
container_name: dev-nextcloud-app
restart: unless-stopped
# untested with cron and push
# user: 1004:1004
depends_on:
- dev-nextcloud-db
- dev-nextcloud-redis
env_file:
- ./nextcloud.env
- ./db.env
volumes:
- ./app:/var/www/html
- ./files:/var/www/html/data
- ./config:/var/www/html/config
# https://github.com/nextcloud/docker/issues/182
- ./php/conf.d/custom.ini:/usr/local/etc/php/conf.d/custom.ini
- ./remoteip.conf:/etc/apache2/conf-enabled/remoteip.conf:ro
- ./redis-session.ini:/usr/local/etc/php/conf.d/redis-session.ini
networks:
proxy:
default:
labels:
- traefik.enable=true
- traefik.http.routers.dev-nextcloud.entrypoints=web-secure
- traefik.http.routers.dev-nextcloud.priority=1 # for notify_push
- traefik.http.routers.dev-nextcloud.rule=Host(`${NEXTCLOUD_FQDN}`) #Domain anpassen
- traefik.http.routers.dev-nextcloud.tls=true
- traefik.http.routers.dev-nextcloud.tls.certresolver=letsencryptresolver
- traefik.http.routers.dev-nextcloud.middlewares=secHeaders4@file,nextcloud-redirect@file
- traefik.http.services.dev-nextcloud.loadbalancer.server.port=80
- traefik.docker.network=proxy
dev-nextcloud-cron:
image: nextcloud:${NEXTCLOUD_VERSION}
container_name: dev-nextcloud-cron
restart: unless-stopped
env_file:
- ./nextcloud.env
- ./db.env
volumes:
- ./app:/var/www/html
- ./files:/var/www/html/data
- ./config:/var/www/html/config
entrypoint: /cron.sh
depends_on:
- dev-nextcloud-app
dev-nextcloud-notify_push:
image: nextcloud:${NEXTCLOUD_VERSION}
container_name: dev-nextcloud-notify_push
restart: unless-stopped
environment:
- PORT=7867
- NEXTCLOUD_URL=http://dev-nextcloud-app # don't go through the proxy to contact the nextcloud server
entrypoint: /var/www/html/custom_apps/notify_push/bin/x86_64/notify_push /var/www/html/config/config.php
depends_on:
- dev-nextcloud-db
- dev-nextcloud-redis
- dev-nextcloud-app
volumes:
- ./app:/var/www/html
- ./config:/var/www/html/config:ro
networks:
proxy:
default:
labels:
- traefik.enable=true
- traefik.http.routers.dev-nextcloud_push.entryPoints=web-secure
- traefik.http.routers.dev-nextcloud_push.priority=2
- traefik.http.routers.dev-nextcloud_push.middlewares=nextcloud_strip_push
- traefik.http.routers.dev-nextcloud_push.tls.certresolver=letsencryptresolver
# necessary for the notify_push app to work:
- traefik.http.routers.dev-nextcloud_push.rule=Host(`${NEXTCLOUD_FQDN}`) && PathPrefix(`/push`)
- traefik.http.routers.dev-nextcloud_push.middlewares=nextcloud_striprefix_push@file
- traefik.http.services.dev-nextcloud_push.loadbalancer.server.port=7867
- traefik.docker.network=proxy
networks:
proxy:
external: true
cat .env
cat ../dev-nextcloud/.env
# this is the ENV file for docker-compose
# nextcloud FQDN - public DNS (for traefik labels)
NEXTCLOUD_FQDN=dev-nc.mydomain.tld
NEXTCLOUD_VERSION=27
cat .nextcloud.env
# nextcloud FQDN - public DNS
NEXTCLOUD_FQDN=dev-nc.mydomain.tld
NEXTCLOUD_TRUSTED_DOMAINS=dev-nc.mydomain.tld
NEXTCLOUD_ADMIN_USER=root
NEXTCLOUD_ADMIN_PASSWORD=**sensitive value**
# SMTP config
SMTP_HOST=**sensitive value**
SMTP_SECURE=ssl
SMTP_PORT=465
SMTP_NAME=**sensitive value**
SMTP_PASSWORD=**sensitive value**
# reverse proxy config
OVERWRITEHOST=dev-nc.mydomain.tld
OVERWRITEPROTOCOL=https
overwrite.cli.url=https://dev-nc.mydomain.tld
# from NC25 ? notify_push requires this setting!
OVERWRITECLIURL=https://dev-nc.mydomain.tld
COLLABORA_FQDN=collabora.mydomain.tld
# redis
#REDIS_URL=redis://dev-nextcloud-redis
REDIS_HOST=dev-nextcloud-redis
REDIS_HOST_PASSWORD=**sensitive value**
#TURN server
COTURN_SECRET=**sensitive value**
# php
PHP_MEMORY_LIMIT=768M
PHP_UPLOAD_LIMIT=1G
cat db.env
# maria DB container
MYSQL_HOST=dev-nextcloud-db
MYSQL_DATABASE=nextcloud
MYSQL_USER=nextcloud
MYSQL_PASSWORD=**sensitive value**