Änderungsstand: 2023-12-25
Ab nun wird die Mongo-DB und Unifi-Controller physisch getrennt. Das ist auch der Grund, weshalb die „alte“ Docker-Version nicht mehr funktioniert und auch ein Upgrade daraufhin scheinbar unmöglich ist. Hier die Vorgehensweise:
Zuerst ein Backup des alten Unifi-Controllers erstellen. Das benötige ich später um nicht alles neu einrichten zu müssen. Ich nehme hierbei das letzte Backup mit. Falls da etwas schief geht, habe ich meinen „alten“ Unifi-Controller immer noch da.
sudo mkdir /var/lib/UnifiDB
sudo nano /var/lib/UnifiDB/init-mongo.js
Folgendes trage ich dort ein (Passwort ändern!):
db.getSiblingDB("unifi").createUser({user: "unifi", pwd: "PASSWORT123", roles: [{role: "dbOwner", db: "unifi"}, {role: "dbOwner", db: "unifi_stat"}]});
Abgespeckte Variante. Mehr wird hier nicht benötigt.
Strg-x, y, Enter
sudo mkdir -p /home/dockervolumes
sudo mkdir -p /home/dockervolumes/unificontroller
cd /home/dockervolumes/unificontroller && sudo nano docker-compose.yml
Folgendes dort einfügen (eigene Werte überprüfen):
version: "3"
services:
unifi-db:
image: docker.io/mongo:4.4.8
container_name: unifi-db
restart: unless-stopped
volumes:
- /var/lib/UnifiDB/data:/data/db
- /var/lib/UnifiDB/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
networks:
default:
ipv4_address: 192.168.30.13
unifi-network-application:
image: lscr.io/linuxserver/unifi-network-application:latest
container_name: unifi-network-application
restart: unless-stopped
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Berlin
- MONGO_USER=unifi ### Muss identisch zu den Einträgen in init-mongo.js sein
- MONGO_PASS=PASSWORT123 ### Muss identisch zu den Einträgen in init-mongo.js sein - Passwort ändern!
- MONGO_HOST=unifi-db
- MONGO_PORT=27017
- MONGO_DBNAME=unifi ### Muss identisch zu den Einträgen in init-mongo.js sein
- MEM_LIMIT=1024 #optional
- MEM_STARTUP=1024 #optional
# - MONGO_TLS= #optional
# - MONGO_AUTHSOURCE= #optional
volumes:
- /var/lib/UnifiController/config:/config
networks:
default:
ipv4_address: 192.168.30.14
networks:
default:
name: meinmacvlan30
external: true
Strg-x, y, Enter
cd /home/dockervolumes/unificontroller && sudo docker compose up -d
Nach ca. 2 Minuten kann ich im Browser die Oberfläche starten: http s://IP_Address:8443
Wenn fertig installiert, erscheint das Startmenu:

Jetzt deaktiviere ich den „alten“ Controller und verwende anschließend „Restore Server from a Backup“ und bin hier fast fertig.
Da ich eine andere IP-Adresse am „neuen“ Unifi-Controller verwende, ändere ich diese in meiner Konfiguration:
- „System“
- „Erweitert“
- Ziemlich weit unten bei „Host Informieren“: Überschreiben AN und die IP-Adresse des „neuen“ Unifi-Controllers eintragen (in meinem Fall: 192.168.30.14)
- „Änderungen Anwenden“
- „Erweitert“
Nun dauert es etwas, bis alle Geräte erkannt wurden. Am Folgetag wurde mein System wieder komplett erkannt. Zu keiner Zeit hatte ich während dieser Aktion Ausfälle im Betrieb.
.
Quelle: https://github.com/linuxserver/docker-unifi-network-application#application-setup