====== Unifi ======
===== Was ist das =====
UniFi ist ein professionelles Ökosystem für Netzwerkkomponenten (wie Access Points, Switches und Gateways) des Herstellers Ubiquiti. Die Besonderheit ist die zentrale Verwaltung: Anstatt jedes Gerät einzeln konfigurieren zu müssen, übernimmt der **UniFi Network Controller** (hier als Docker-Container realisiert) diese Aufgabe.
Er dient zur:
* Zentralen Konfiguration und Verwaltung aller UniFi-Geräte im Netzwerk.
* Bereitstellung von Gäste-WLANs (mit Captive Portals).
* Analyse des Netzwerkverkehrs (DPI - Deep Packet Inspection).
* Verwaltung von Software-Updates für die Hardware.
* Überwachung des Netzwerkstatus und der Performance.
===== Beispiel =====
services:
unifi:
image: docker.io/jacobalberty/unifi:v10.0.162 # Always pin specific version, never use 'latest'
labels:
- wud.tag.include=^v\d+\.\d+\.\d+$ # For What's Up Docker monitoring
container_name: unifi
hostname: unifi
restart: unless-stopped
init: true
healthcheck:
test: 'curl -k --fail -s http://localhost:8080/status | grep uuid|| exit 1'
interval: 60s
timeout: 10s
retries: 3
start_period: 30s
networks:
- default # Use the main network
volumes:
- unifi_data:/unifi
environment:
TZ: ${TZ:-UTC} # Timezone
ports:
# UniFi Controller Ports
- "${UNIFI_HTTPS_PORT:-8443}:8443" # Web admin interface (HTTPS)
- "${UNIFI_HTTP_PORT:-8080}:8080" # HTTP redirect port
- "${UNIFI_INFORM_PORT:-8080}:8080/udp" # Device inform port (UDP)
- "${UNIFI_STUN_PORT:-3478}:3478/udp" # STUN port for remote access
- "${UNIFI_AP_DISCOVERY:-10001}:10001/udp" # AP discovery port
- "${UNIFI_SPEEDTEST:-6789}:6789" # Speed test port
- "${UNIFI_SYSLOG:-5514}:5514/udp" # Remote syslog port (optional)
volumes:
unifi_data:
===== Erklärung =====
In diesem Docker-Setup werden die wichtigsten Ports für den Betrieb des Controllers gemappt:
* **8443 (HTTPS):** Das Web-Interface für die Administration.
* **8080 (HTTP/Inform):** Der Port, über den die UniFi-Geräte mit dem Controller kommunizieren (L3-Management).
* **3478 (UDP):** Wird für STUN-Services benötigt, um z.B. WebRTC-Verbindungen zu ermöglichen.
* **10001 (UDP):** Dient der automatischen Erkennung (Discovery) von Geräten im selben Layer-2-Netzwerk.
Das Volume **unifi_data** sorgt dafür, dass die Konfiguration und die interne Datenbank (MongoDB) über Container-Neustarts und Updates hinweg erhalten bleiben. Durch die Verwendung von Variablen wie `${TZ}` lässt sich die Zeitzone flexibel anpassen.
===== Anpassung im Web-Frontend =====
Im UniFi dann das ''Host Inform Override'' setzen:
UniFi Devices > Device Updates and Settings > Inform host override:
{{:server:docker:andreas_homelab:unifi.png?400|}}