# UniFi Network Application (Docker) UniFi Network Application (Controller) mit MongoDB, alle persistenten Daten liegen im Projektordner unter `./data/`. - Image: [linuxserver/unifi-network-application](https://docs.linuxserver.io/images/docker-unifi-network-application/) - Datenbank: MongoDB — die Version wird von `start.sh` beim ersten Start automatisch passend zur CPU gewählt und in `.env` gepinnt: x86_64/ARM mit AVX bzw. ARMv8.2 → **7.0**, ältere CPUs ohne AVX → **4.4** (Mongo 5+ startet dort nicht). Danach den Pin **nicht** von Hand erhöhen — eine bestehende Datenbank läuft nicht ohne Migration unter einer neueren Major-Version. ## Erster Start ```bash cp .env.example .env # und MONGO_PASS auf ein eigenes Passwort setzen ./start.sh # wählt die MongoDB-Version und startet den Stack docker-compose logs -f unifi-network-application # warten bis der Start durch ist ``` Danach im Browser: **https://:8443** (selbstsigniertes Zertifikat, Warnung einmalig bestätigen). Im Einrichtungs-Assistenten kann auch direkt ein vorhandenes Backup (`.unf`) eingespielt werden. ## Wichtig: Inform-Port ist 8082 (nicht 8080!) Port 8080 ist auf diesem Host bereits belegt, deshalb lauscht der Inform-Port für die Geräte-Adoption auf **8082**. Damit Geräte sich melden: - In der Weboberfläche: *Einstellungen → System → Erweitert → "Inform Host" überschreiben* aktivieren und `:8082` eintragen, **oder** - pro Gerät per SSH: `set-inform http://:8082/inform` ## Ports | Host-Port | Zweck | |-----------|------------------------------------------| | 8443 | Weboberfläche (HTTPS) | | 8082 | Inform / Geräte-Adoption (→ 8080 intern) | | 3478/udp | STUN | | 10001/udp | Geräte-Discovery | | 8843 | Gäste-Portal HTTPS (optional) | | 8880 | Gäste-Portal HTTP (optional) | | 6789 | Mobile Speedtest (optional) | ## Aktualisieren ```bash ./update.sh ``` Erstellt zuerst ein Backup, zieht dann die neuesten Images und startet die Container neu. Alle Daten bleiben in `./data/` erhalten. ## Backups ```bash ./backup.sh # kopiert die UniFi-Autobackups (.unf) nach ./backups/ ./backup.sh --full # Komplett-Backup von ./data als tar.gz (kurze Downtime) ``` Autobackups einmalig in der Weboberfläche aktivieren: *Einstellungen → System → Backups → Automatische Sicherung*. ## Wiederherstellen ```bash ./restore.sh backups/unifi-full-backup_.tar.gz # Komplett-Restore ./restore.sh backups/autobackup_/.unf # .unf bereitstellen ``` `.unf`-Backups werden anschließend in der Weboberfläche eingespielt (*Einstellungen → System → Backups → Wiederherstellen*) oder bei einer Neuinstallation direkt im Einrichtungs-Assistenten. ## MongoDB auf 7.0 migrieren ```bash ./migrate-mongo.sh ``` Für den Fall, dass der Stack auf neue Hardware umzieht (oder ursprünglich mit Mongo 4.4 eingerichtet wurde, die CPU aber mehr kann): Das Skript prüft zuerst die CPU (AVX bzw. ARMv8.2) und bricht ohne Änderungen ab, wenn MongoDB 5+ dort nicht laufen kann. Andernfalls erstellt es ein Komplett-Backup und migriert die Datenbank schrittweise in-place (4.4 → 5.0 → 6.0 → 7.0, inkl. `featureCompatibilityVersion`), pinnt `MONGO_VERSION=7.0` in der `.env` und startet den Stack wieder. ## Verzeichnisstruktur ``` data/mongodb/ MongoDB-Datenbank data/unifi/ UniFi-Konfiguration, Logs, Autobackups backups/ von backup.sh erstellte Sicherungen .env Zugangsdaten der Datenbank (nicht weitergeben) ```