server-up/apps/unifi-network/files/compose.yaml
Ramon 3ee09eebc7
All checks were successful
Deploy server-up (dev) / deploy (push) Successful in 4m12s
fix(stacks): geslaagde wijziging niet meer terugdraaien
Het audit-logboek las request.remote_addr uit in de achtergrondthread van de
job. De RuntimeError die daarop volgde belandde in de foutafhandeling, die de
zojuist gemaakte backup terugzette — inclusief het oude compose-bestand.

- Adres vóór de threadstart vastleggen bij herconfigureren, koppelen, backup
  maken en terugrollen.
- UniFi: init-script probeert de beheerders 'unifi' en 'root' en herkent een
  server zonder authenticatie, zodat ook een oud Mongo-volume gerepareerd
  wordt; bestaande rollen blijven staan en 'backup'/'restore' worden aangevuld.
- UniFi: healthcheck van Mongo zonder inloggegevens, anders bleef de container
  ongezond en startte de reparatiecontainer nooit.
- Backups: mongodump/mongorestore gebruiken de beheerder uit compose in plaats
  van de verzonnen gebruiker 'app'.
- Appkaart: knop die de webinterface opent, met het adres uit /api/stacks.
- Joblog: geen dubbele regels meer doordat polls elkaar konden overlappen.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01H9Vcwu7owJZ3nj5dCf4VFT
2026-08-06 16:44:01 +02:00

80 lines
2.6 KiB
YAML

services:
<< service_name >>:
image: lscr.io/linuxserver/unifi-network-application:latest
container_name: << service_name >>
environment:
- PUID=<< puid >>
- PGID=<< pgid >>
- TZ=<< timezone >>
- MONGO_USER=unifi
- MONGO_PASS=<< mongo_password >>
- MONGO_HOST=<< service_name >>-mongo
- MONGO_PORT=27017
- MONGO_DBNAME=unifi
- MONGO_AUTHSOURCE=admin
volumes:
- << appdata_dir >>/<< service_name >>/config:/config
ports:
- "<< port_ui >>:8443"
- "<< port_inform >>:8080"
- "<< port_stun >>:3478/udp"
- "<< port_discovery >>:10001/udp"
depends_on:
<< service_name >>-mongo:
condition: service_healthy
<< service_name >>-mongo-init:
condition: service_completed_successfully
restart: unless-stopped
<< service_name >>-mongo:
image: mongo:4.4.29
container_name: << service_name >>-mongo
environment:
# Dezelfde beheerdersnaam als het allereerste sjabloon gebruikte. Zo
# passen een vers volume en een volume van een oudere installatie op
# dezelfde inloggegevens — ook die van de backup (mongodump).
- MONGO_INITDB_ROOT_USERNAME=unifi
- MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >>
- MONGO_USER=unifi
- MONGO_PASS=<< mongo_password >>
- MONGO_DBNAME=unifi
- MONGO_AUTHSOURCE=admin
volumes:
- << service_name >>_mongodata:/data/db
- ./init-mongo.sh:/docker-entrypoint-initdb.d/init-mongo.sh:ro
healthcheck:
# Bewust zonder inloggegevens: `ping` mag ook zonder aanmelden. Een
# volume dat door een oudere versie van dit sjabloon is aangemaakt kent
# de gebruiker 'root' niet, en dan bleef deze container voor altijd
# ongezond — waardoor de reparatiecontainer hieronder nooit startte.
test:
- CMD-SHELL
- 'mongo --quiet --eval "db.adminCommand({ ping: 1 })"'
interval: 10s
timeout: 5s
retries: 12
start_period: 30s
restart: unless-stopped
<< service_name >>-mongo-init:
image: mongo:4.4.29
container_name: << service_name >>-mongo-init
environment:
- MONGO_INITDB_ROOT_USERNAME=unifi
- MONGO_INITDB_ROOT_PASSWORD=<< mongo_password >>
- MONGO_USER=unifi
- MONGO_PASS=<< mongo_password >>
- MONGO_HOST=<< service_name >>-mongo
- MONGO_PORT=27017
- MONGO_DBNAME=unifi
- MONGO_AUTHSOURCE=admin
volumes:
- ./init-mongo.sh:/init-mongo.sh:ro
entrypoint: ["/bin/bash", "/init-mongo.sh"]
depends_on:
<< service_name >>-mongo:
condition: service_healthy
restart: "no"
volumes:
<< service_name >>_mongodata: