UniFi Network Controller per Docker auf der Synology – mein Erfahrungsbericht
Christoph Schwob·4 Min. Lesezeit
Was ist neu: Status heute, aktuelle Images und Container Manager ergänzt, Tippfehler im Passwort-Befehl korrigiert und Hinweis auf mongosh.
Kurz & knapp
Den UniFi Network Controller kann man mit dem Image jacobalberty/unifi im Container Manager einer Synology betreiben – wichtig sind Host-Netzwerk bzw. die Ports 8080, 8443, 3478/udp und 10001/udp. Ein vergessenes Passwort lässt sich direkt in der MongoDB (--port 27117, Datenbank ace) zurücksetzen, und Geräte, die den Controller nicht finden, holt set-inform http://<IP>:8080/inform per SSH zurück.
Getestet mit: UniFi Network 6.0.43 → 7.x auf Synology (Juli 2023)
Ich hab mich schon länger gewundert, dass mir meine Cloud-Key-Gen2+-Oberfläche nie mehr ein Update angeboten hat. Mit dem Ausbau des neuen Büros sollte das Netzwerk um einen neuen 24er-Switch mit PoE erweitert werden – und laut Datenblatt braucht der die Controller-Version 7.x. Meiner lief aber noch auf 6.0.43.
Also wollte ich das Update manuell per SSH anstoßen: „Connection refused.“ Neustart – brachte nix. Also in der GUI ein Backup gemacht und heruntergeladen, danach ein Factory Reset. Das ging noch, und dann kam am Controller die Meldung: „Boot failed“. Der ist also im Eimer.
Schneller Workaround: den Controller mit Docker auf der Synology laufen lassen.
Und so ging’s
-
Docker auf der Synology installieren – im Paket-Zentrum. Dabei wird auch gleich eine neue Freigabe namens
dockerangelegt.Heute heißt das Paket Container Manager; die Oberfläche sieht etwas anders aus als 2023.
-
Passendes Image finden. In der Docker-App unter Registrierung nach „UniFi“ gesucht und diese beiden gefunden:
- jacobalberty/unifi (öffnet in neuem Tab) – für das habe ich mich entschieden
linuxserver/unifi-controller– inzwischen veraltet, Nachfolger ist linuxserver/unifi-network-application (öffnet in neuem Tab) (braucht eine eigene MongoDB)
Und zwar bewusst in der Version 6.0.43, also derselben wie auf dem Cloud Key – ich war mir nicht sicher, ob sich mein Backup in einer neueren Version einspielen lässt. Bei GitLab geht das zum Beispiel nicht.
-
Container einrichten. Die Einstellungen habe ich aus dieser Anleitung von Andreas Schreiner (öffnet in neuem Tab) übernommen. Die wichtigsten Punkte:
- Netzwerk host statt bridge
- die Variablen
BIND_PRIVundRUNAS_UID0auffalse - als Volume einen vorher angelegten Ordner, z. B.
/docker/Unifi-Controller
-
Ports in der Synology-Firewall freigeben – danach kam ich zumindest schon mal auf die GUI des Controllers.
Passwort zurücksetzen in der MongoDB
Nächstes Problem: Das Passwort ging nicht. Zurücksetzen ebenso nicht. Im Netz habe ich dann dieses Video (öffnet in neuem Tab) und eine (inzwischen leider nicht mehr verfügbare) Anleitung gefunden. Die Befehle führt man im Terminal des Containers aus – das gibt’s in der Synology-Oberfläche direkt beim Container.
Zuerst den Benutzernamen herausfinden:
mongo --port 27117 ace --eval "db.admin.find().forEach(printjson);"
Das liefert eine Liste mit den Admins aus der Datenbank. Dann das Passwort für den eigenen User überschreiben (XXX = Benutzername):
mongo --port 27117 ace --eval 'db.admin.update({"name": "XXX"}, {$set: {"x_shadow": "$6$OzJJ0heL$XyD5qt4pviLieuj8CMFbnSc9VYvxDyzYpH7dHC8wmaLwKv9xwyDxBiMx3GcT8nEdIa7XJbqlZo39jhfbQBXRM/"}})'
Der lange Wert ist der SHA-512-Hash von password123 – damit kann man sich anmelden und sollte das Passwort natürlich sofort wieder ändern.
Dabei habe ich auch bemerkt, dass mein Benutzername zwei Leerzeichen am Ende hatte. Also den Befehl umgebaut und die Leerzeichen gleich mit entfernt – danach konnte ich mich endlich anmelden.
Geräte werden nicht erkannt
Wie in einer Anleitung beschrieben, habe ich im Pi-hole einen DNS-Eintrag für die Synology gesetzt – aber auch ein Neustart des Access Points brachte nix. Vermutlich hatten die UniFi-Geräte andere DNS-Server hinterlegt.
Beim Access Point wusste ich nicht, welche Zugangsdaten ich für SSH brauche, also hab ich’s beim USG versucht. Dort ging’s, und per Konsole habe ich die Inform-URL umgestellt:
set-inform http://<SYNOLOGY-IP>:8080/inform
Danach erkannte der Controller mein USG wieder.
Update auf die aktuelle Controller-Version
Zuerst in der Docker-App das neueste Image heruntergeladen (Tag latest). Danach habe ich, wie im Synology-Forum beschrieben (öffnet in neuem Tab), den Container exportiert, in der JSON-Datei die Version geändert, den Container wieder importiert und gestartet.
Lustigerweise hat er nach dem Update auf 7.x dann auch alle anderen UniFi-Geräte von selbst erkannt.
Häufige Fragen
Welches Docker-Image eignet sich für den UniFi Controller?
Ich habe jacobalberty/unifi verwendet, das bis heute gepflegt wird (aktuell UniFi Network 10). Das früher ebenfalls verbreitete linuxserver/unifi-controller ist veraltet; Nachfolger ist linuxserver/unifi-network-application, das eine separate MongoDB benötigt.
Welche Ports braucht der UniFi Controller?
Laut Image-Dokumentation 8080/tcp (Gerätekommunikation), 8443/tcp (Weboberfläche), 3478/udp (STUN) und 10001/udp (Geräteerkennung).
Wie setze ich das Passwort des UniFi Controllers zurück?
In der MongoDB des Controllers den Hash im Feld x_shadow des Admin-Users überschreiben, z. B. mit dem SHA-512-Hash von password123, anmelden und sofort ein neues Passwort setzen.
Warum findet der Controller meine UniFi-Geräte nicht?
Die Geräte kennen die neue Adresse des Controllers nicht. Per SSH auf dem Gerät mit set-inform http://<Controller-IP>:8080/inform die neue Adresse setzen.
Quellen & weiterführende Links
- jacobalberty/unifi (Docker Hub) (öffnet in neuem Tab) – Docker Hub
- jacobalberty/unifi-docker (README) (öffnet in neuem Tab) – GitHub
- linuxserver/unifi-network-application (öffnet in neuem Tab) – Docker Hub
- Container Manager (öffnet in neuem Tab) – Synology
- UniFi Controller Installation auf einer Synology NAS (öffnet in neuem Tab) – Andreas Schreiner
- MongoDB 6.0 Compatibility Changes (mongo shell entfernt) (öffnet in neuem Tab) – MongoDB Dokumentation
Geschrieben von
Christoph Schwob (öffnet in neuem Tab)
Ich bin Christoph Schwob, halbkreativer Entwickler aus Österreich und arbeite seit über 10 Jahren an und mit TYPO3. Hier sammle ich Lösungen, Code-Snippets und Notizen rund um TYPO3, macOS, Server, Homelab und alles andere.
Das könnte dich auch interessieren
- USV-Server mit Synology NAS und NUT einrichten – Homelab sicher abschalten – 17. Juli 2026
- UniFi Cloud Key Gen2 Plus: BOOT FAILED – was ich versucht habe – 19. Oktober 2023
- Self-hosted GitLab (Omnibus): Backup, Updates & typische Fehler – 4. Februar 2021