UniFi Controller in der Cloud hosten

Diese Anleitung zeigt wie du den UniFi Network Server in der Cloud hosten kannst.

UniFi Controller in der Cloud hosten
UniFi Controller

Ich werde den UniFi Controller anhand eines Beispiels in der Hetzner Cloud installieren. Die Installation funktioniert bei anderen Cloud-Anbietern identisch, die Benutzeroberfläche zum Erstellen des Servers kann sich jedoch unterscheiden.

Was ist ein UniFi Controller?

Der UniFi Controller bzw. die UniFi Network Application wird verwendet um Access Points, Switches & Gateways der UniFi Palette von Ubiquiti zu verwalten und konfigurieren. Die Konfiguration bleibt auf den Geräten gespeichert, auch wenn keine Verbindung zum Controller besteht. Um alle Features optimal zu nutzen und Statistiken über die Netzwerkqualität zu haben, sollte der UniFi Controller immer laufen. Dieser kann entweder als dediziertes Gerät in Form eines UniFi Cloud Key, auf einem PC oder Server installiert oder in der Cloud betrieben werden. Es gibt ebenfalls die Option, auf das offizielle Cloud-Hosting von Ubiquiti zu setzen. Dieses ist für ca. 30€ pro Monat erhältlich. In dieser Anleitung werde ich jedoch darauf eingehen, wie der UniFi Controller selbst in der Cloud gehostet werden kann. Beachte jedoch, dass du hierbei selbst für die Sicherheit und Wartung deines Servers in der Cloud verantwortlich bist, im Gegensatz zum offiziellen Hosting von Ubiquiti oder anderen Anbietern.

Server bei Hetzner erstellen

Als erstes ist es notwendig einen virtuellen Server in der Cloud zu erstellen. Ich erstelle diesen beim Cloud-Anbieter meiner Wahl, Hetzner. Die Schritte sind bei anderen Cloud-Anbietern etwas anders.

  1. Melde dich unter console.hetzner.cloud mit deinem Hetzner-Account an. Wenn du noch keinen hast, kannst du hier einen erstellen. Mit meinem Code ekSYgfaQl5qf erhältst du zudem 20€ Startguthaben bei Hetzner, damit kannst du dann beispielsweise die VM für den UniFi Controller für ca. 4,5 Monate kostenlos betreiben.
  2. Wähle im Cloud Control Panel von Hetzner ein Projekt aus oder erstelle ein Neues
  3. Klicke oben rechts auf "Server erstellen"
  4. Wähle anschliessend den Standort für deinen Server aus. Ich entscheide mich für Nürnberg. Wähle den Standort aus, welcher von dir am nächsten ist.
  5. Wähle Debian 12 als Image aus
  6. Entscheide dich für einen VM-Typ. Ich verwende CAX11. Dieser Server hat 2 VCPUs und 4GB RAM. Dieser Server sollte für die meisten Fälle ausreichen, ansonsten kannst zu jederzeit upgraden.
  7. Wähle anschliessend aus, dass du eine öffentliche IPv4 Adresse benötigst
  8. Wähle einen SSH Key aus oder füge einen hinzu
  9. Erstelle eine neue Firewall und wähle diese in der Liste aus. Erstelle folgende Regeln für deine Firewall:
    1. Eingehend: Port 8080/TCP
    2. Eingehend: Port 8443/TCP
    3. Eingehend: Port 3478/UDP
    4. Eingehend: Port 22/TCP
    5. Ausgehend: Alle erlauben
    6. Der Rest sollte nicht erlaubt sein
  10. Aktiviere das Backup für deinen Server, damit du bei einer Fehlkonfiguration oder eines sonstigen Vorfalls deinem Server wiederherstellen kannst.
  11. Lege einen Namen für deine VM fest. Ich habe mich für unifi-controller entschieden
  12. Bestelle deine VM

Mit dem Server verbinden

Nach einigen Minuten sollte der Server im Dashboard mit einem grünen Punkt als Online/Eingeschaltet angezeigt werden. Dann kannst du dich per SSH auf den Server verbinden. Öffne dazu auf deinem Mac oder unter Linux das Terminal oder auf deinem Windows die PowerShell. Mit folgendem Befehl, stellst du eine Verbindung zu deinem Server her:

ssh root@10.10.10.10

Beachte jedoch, dass du 10.10.10.10 mit der IP-Adresse deines Servers ersetzen musst. Diese wird dir ebenfalls im Dashboard bei Hetzner angezeigt. Wenn folgende Meldung erscheint, bestätige den Vorgang durch die Eingabe von yes.

SSH Fingerprint

UniFi Controller installieren

Nun bist du mit deinem Server verbunden und die Installation kann beginnen. Führe als erstes folgenden Befehl aus, um alle Pakete auf deinem Server zu aktualisieren.

apt update && apt upgrade -y

Installiere anschliessend mit folgendem Befehl Docker

apt install docker.io docker-compose -y

Erstelle nun einen Ordner für den UniFi Controller und öffne diesen

mkdir /app/ && mkdir /app/unifi && cd /app/unifi

Erstelle nun eine Datei mit dem Namen docker-compose.yml

nano docker-compose.yml

Kopiere nun folgenden Text und füge ihn ein. (Auf MacOS mit Cmd+V, auf Windows mit Rechtsklick auf das PowerShell Fenster oder mit Ctrl+V)

version: "3"
services:
    unifi:
        image: jacobalberty/unifi
        container_name: unifi
        restart: unless-stopped
        ports:
            - 8080:8080 # Communication with unifi devices, required
            - 8443:8443 # WebGUI, required
            - 3478:3478/udp # STUN, required
        volumes:
            - ./unifi:/unifi
        environment:
            - TZ=Europe/Zurich

Speichere nun die Änderungen mit Ctrl + X (Mac: Option + X) und dann Y

Nun kann der Docker-Container mit folgendem Befehl gestartet werden:

docker-compose up -d

Nach einigen Minuten wird folgende Meldung angezeigt. Nun wurde der Docker Container erstellt.

Wenn du nun im Browser die folgenden URL aufrufst https://<DEINE-SERVER-IP>:8443 solltest du auf folgender Seite landen

Startseite neuer UniFi Controller

Wenn diese Seite nicht angezeigt wird, ist der Server noch nicht soweit. Warte 5-10 Minuten und versuche es dann erneut. Nun sollte es funktionieren

UniFi Controller konfigurieren

Wenn du bereits eine UniFi Controller Konfiguration hast, beispielsweise wenn du den Controller bisher lokal auf deinem PC betrieben hast, kannst du auf "Restore Server from Backup" klicken und deine Backup-Datei hochladen.

Restore aus einem Backup

Ansonsten kannst du einen Namen für deinen UniFi Controller festlegen und dein Land auswählen

Konfiguration UniFi Network Server

Melde dich anschliessend mit deinem UniFi Account an oder erstelle einen neuen Account. Es ist auch möglich die Konfiguration ohne UniFi Account durchzuführen. Dann musst du einen lokalen Benutzer erstellen.

Erstellen eines Benutzers ohne UniFi Account

Anschliessend landest du auf der Startseite deines UniFi Controllers

Startseite UniFi Controller

UniFi Geräte verbinden

Es gibt verschiedene Möglichkeiten deine UniFi Geräte zu deinem Controller in der Cloud hinzufügen:

  • Per DHCP Option 43
  • Lokalen DNS Eintrag für unifi
  • Manuell per CLI auf den UniFi Geräten
  • Migration der bestehenden Site

DHCP Option 43

Am einfachsten ist wohl die Konfiguration der DHCP Option 43 in deinem Netzwerk. Damit das möglich ist, muss dein DHCP-Server jedoch die Konfiguration der Option 43 unterstützen. Dabei muss dann einfach die IP-Adresse deines Cloud-Servers eingetragen werden. Wenn du ein Gateway von UniFi verwendest findest du die Einstellung unter Networks -> Dein Netzwerk -> DHCP -> DHCP Service Management .

Konfiguration der DHCP Option 43

Nach einem Neustart des Gerätes sollte es dann automatisch im UniFi Controller zur Adoption vorgeschlagen werden.

Lokalen DNS-Eintrag für UniFi

Wenn du in deinem Netzwerk einen lokalen DNS-Server hast, kannst du den Namen unifi auf die IP-Adresse deines Servers in der Cloud zeigen lassen. Anschliessend sollten deine UniFi Geräte nach einigen Minuten ebenfalls automatisch im UniFi Controller zur Adoption vorgeschlagen werden.

Manuell per CLI

Um die Adresse deines UniFi Network Servers manuell per CLI auf deinem UniFi-Gerät zu hinterlegen, benötigst du die IP-Adresse des gewünschten Gerätes und die SSH Zugangsdaten. Wenn du bereits einen UniFi Controller verwendest, findest du dort die IP-Adresse und kannst die SSH-Zugangsdaten unter Settings -> System -> Advanced -> Device Authentication festlegen. Wenn das Gerät bisher noch in keinem UniFi Controller ist, kannst du das Gerät auf die Werkeinstellungen zurücksetzen. Dazu musst du mit einer Büroklammer für 10s auf den Reset-Knopf drücken. Dieser befindet sich je nach Gerät an einer anderen Stelle, oft jedoch auf der Unter-/Hinterseite. Anschliessend kannst du dich mit den Zugangsdaten ubnt sowohl als Benutzern, als auch als Passwort auf das Gerät verbinden. Die IP-Adresse des Gerätes findest du auf deinem Router oder mit einem IP-Scan heraus.

Mit folgendem SSH Befehl kannst du dich nun auf ein UniFi-Gerät verbinden:

ssh ubnt@<IP-ADRESSE>

Mit dem folgenden Befehl kannst du nun deine Inform-URL festlegen. Passe hier die IP-Adresse auf deinen Server an.

set-inform http://<IP-ADRESSE-SERVER>:8080/inform

Anschliessend wird das Gerät nach einigen Minuten im UniFi Controller zur Adoption angezeigt.

Der kleine UniFi Switch Flex Mini unterstützt keine SSH-Verbindungen. Hier musst du auf eine der anderen Methoden zurückgreifen.

Migration einer bestehenden Site

Ebenfalls ist es möglich deine ganze UniFi Geräte-Flotte auf deinen neuen UniFi Controller in der Cloud zu migrieren, falls du bereits einen Controller verwendet hast zuvor. Gehe dazu auf deinem bestehenden Controller in die Einstellungen und klicke unter System auf Export Site .

Site exportieren

Lade dann mit einem Klick auf Download the Site Export File deine aktuelle Konfiguration herunter und klicke auf Continue .

Aktuelle Konfiguration exportieren

Setze anschliessend den Migrationsprozess fort

Migrationsprozess fortsetzen

Nun erscheint eine Maske zum Eintragen der Inform-URL deines neuen UniFi Controllers. Trage hier den korrekten Server-Namen/IP-Adresse ein und starte die Migration mit Migrate Devices.

Details zum neuen Server festlegen

Importiere nun auf dem neuen Server im Site-Manager die eben heruntergeladene Konfigurationsdatei und lege einen Namen fest für die Site.

Import der bestehenden Site

Nach einem kurzen Augenblick siehst du dann die importierte Seite im Site Manager und die UniFi Geräte sollten sich innert der nächsten Minuten automatisch verbinden.

Importierte Seite im Site-Manager

Update installieren

Von Zeit zu Zeit veröffentlich Ubiquiti neue Versionen des UniFi Network Servers mit Verbesserungen, Umstrukturierungen und neuen Funktionen. Führe die folgenden Schritte aus, um ein Update zu installieren.

  1. Verbinde dich per SSH auf den Server (wie zu Beginn in der Anleitung)
  2. Navigiere ins Verzeichnis des UniFi Container: cd /app/unifi
  3. Erstelle eine Sicherheitskopie der aktuellen Daten: cp -r unifi unifi-bak
  4. Lade die neuste Version herunter: docker-compose pull
  5. Starte den Container neu: docker-compose down && docker-compose up -d
  6. Nach einigen Minuten ist dein UniFi Controller wieder erreichbar und die aktuellste Version installiert.

Wenn nach deinem Update deine Daten verschwunden sind, kannst du mit folgenden Befehlen wieder auf den vorherigen Datenstand wechseln.

docker-compose down
mv unifi unifi-old
mv unifi-bak unifi
docker-compose up -d

Tipps & Tricks

Öffentlicher DNS-Eintrag für deinen Server

Es ist empfehlenswert für deinen Server in der Cloud einen öffentlichen DNS Eintrag zu erstellen, damit du beispielsweise bei der Konfiguration der Inform-URL auf den UniFi Geräten, anstelle der IP-Adresse deines Servers einen Domain-Namen angeben kannst. Dadurch musst du bei einer Migration des Servers oder eine Änderung der IP-Adresse deines Servers lediglich den DNS-Eintrag und nicht auf jedem Gerät die Inform-URL anpassen.

HTTPS mit gültigem Zertifikat

Wenn du deinen UniFi Controller ohne HTTPS-Warnung erreichen möchtest, ist es notwendig ein gültiges SSL-Zertifikat zu verwenden. Am einfachsten ist hierfür die Verwendung eines Cloudflare Tunnels oder eines Reverse Proxy wie Traefik. (Zur Verwendung von Traefik wird ein separates Tutorial folgen) Es gibt jedoch auch die Möglichkeit im UniFi Controller ein eigenes Zertifikat zu hinterlegen. Weitere Informationen dazu findest hier.

Multi-Site Management

Mit deinem UniFi Network Server kannst du auch mehr als einen Standort bzw. ein UniFi Netzwerk verwalten. Dazu musst du einfach in den Einstellung deines UniFi Network Server den Haken bei Multi-Site Management setzen. Diese Einstellung findest du in den Einstellungen unter System.

Multi-Site Management aktivieren

Anschliessend kannst du in der oberen Linken Ecke zwischen den verschiedenen Sites wechseln.

Site Switcher

Links