99 lines
3.6 KiB
Markdown
99 lines
3.6 KiB
Markdown
# 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://<host-ip>: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 `<host-ip>:8082` eintragen, **oder**
|
|
- pro Gerät per SSH: `set-inform http://<host-ip>: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_<datum>.tar.gz # Komplett-Restore
|
|
./restore.sh backups/autobackup_<datum>/<datei>.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)
|
|
```
|