doc: konsolidierte Homelab-Dokumentation + Original-Plan

This commit is contained in:
2026-06-04 02:15:42 +02:00
parent 1ceaa8e103
commit daf5ffc8d0
13 changed files with 1372 additions and 1 deletions
+111
View File
@@ -0,0 +1,111 @@
# nextcloud stack — rieger-getuned, caddy-ready, mit collabora + whiteboard
# läuft im LXC 110. rootfs/app auf NVMe, daten auf tank (/srv/nc_data = tank/nextcloud).
# caddy terminiert TLS und proxyt cloud.deinedomain.ch -> web:80
# office.deinedomain.ch -> collabora:9980
# whiteboard.deinedomain.ch -> whiteboard:3002
services:
db:
image: mariadb:11.4
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- db:/var/lib/mysql
- ./config/mariadb-tuning.cnf:/etc/mysql/conf.d/99-nextcloud.cnf:ro
environment:
- MARIADB_ROOT_PASSWORD=${DB_ROOT_PW}
- MARIADB_DATABASE=nextcloud
- MARIADB_USER=nextcloud
- MARIADB_PASSWORD=${DB_PW}
healthcheck:
test: ["CMD", "healthcheck.sh", "--connect", "--innodb_initialized"]
interval: 10s
retries: 5
redis:
image: redis:7-alpine
restart: unless-stopped
command: redis-server --requirepass ${REDIS_PW}
volumes:
- redis:/data
app:
image: nextcloud:fpm
restart: unless-stopped
depends_on:
db:
condition: service_healthy
redis:
condition: service_started
volumes:
- nextcloud:/var/www/html
- /srv/nc_data:/var/www/html/data # <- tank/nextcloud mount im LXC
- ./config/php-custom.ini:/usr/local/etc/php/conf.d/zz-nextcloud.ini:ro
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=${DB_PW}
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=${REDIS_PW}
- NEXTCLOUD_TRUSTED_DOMAINS=cloud.deinedomain.ch
- TRUSTED_PROXIES=10.0.0.100 # <- Caddy-IP
- OVERWRITEPROTOCOL=https
- OVERWRITECLIURL=https://cloud.deinedomain.ch
- PHP_MEMORY_LIMIT=1024M
- PHP_UPLOAD_LIMIT=16G
web:
image: nginx:alpine
restart: unless-stopped
depends_on: [app]
volumes:
- nextcloud:/var/www/html:ro
- /srv/nc_data:/var/www/html/data:ro
- ./config/nginx-nextcloud.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- "8110:80" # <- Caddy proxyt hierauf
cron:
image: nextcloud:fpm
restart: unless-stopped
depends_on: [db, redis]
volumes:
- nextcloud:/var/www/html
- /srv/nc_data:/var/www/html/data
entrypoint: /cron.sh
collabora:
image: collabora/code:latest
restart: unless-stopped
cap_add: [MKNOD]
environment:
- aliasgroup1=https://cloud\.deinedomain\.ch:443
- server_name=office.deinedomain.ch
- username=admin
- password=${COLLABORA_PW}
- extra_params=--o:ssl.enable=false --o:ssl.termination=true
ports:
- "9980:9980" # <- Caddy proxyt office.deinedomain.ch hierauf
whiteboard:
image: ghcr.io/nextcloud-releases/whiteboard:stable
restart: unless-stopped
environment:
- NEXTCLOUD_URL=https://cloud.deinedomain.ch
- JWT_SECRET_KEY=${WHITEBOARD_JWT}
ports:
- "3002:3002" # <- Caddy proxyt whiteboard.deinedomain.ch hierauf
# optional, aber rieger-im-geiste: schnellere previews
imaginary:
image: nextcloud/aio-imaginary:latest
restart: unless-stopped
cap_add: [SYS_NICE]
environment:
- PORT=9000
volumes:
nextcloud:
db:
redis: