Seit gut drei Jahren betreibe ich einen RaspberryPi als Homeserver. Zunächst reichte dieser noch gut aus. Mit der Zeit wurde aber nicht nur die Zahl der Anwendungen, die auf dem Raspberry laufen, mehr, sondern auch die Leistungsanforderungen der Anwendungen selbst. Besonders meine ich damit die Influx Datenbank, die seit über drei Jahren jede Minuten um einen Datensatz der PV-Anlage größer wird. Die Datenbank braucht mittlerweile über 10 Minuten zum Starten. Auch diese Webseite braucht zum Laden deutlich länger, als sie sollte. Wenn ich den Raspberry komplett neu starte, braucht es ca. eine Stunde, bis alle Anwendungen wieder laufen. Das ist definitiv zu viel. Es sollte also ein neuer Rechner her. In dieser Artikelserie möchte ich davon berichten.
Übersicht aller Artikel dieser Serie
- Teil 1 – Die Hardware
- Teil 2 – Installation von Proxmox
- Teil 3 – Openmediavault
- Teil 4 – Ubuntu Server
- Teil 5 – Docker und Portainer
- Teil 6 – Homarr
- Teil 7 – Unifi Controller
- Teil 8 – Pihole
- Teil 9 – Jellyfin
- Teil 10 – InfluxDB und Grafana
- Teil 11 – Homeassistant
- Teil 12 – Mosquitto
- Teil 13 – WireGuard mit wg-easy
- Teil 14 – Immich
- Teil 15 – Stromverbrauch
Was ist der Unifi Controller?
Der Unifi Controller ist eine Software, die benötigt wird, um Unifi Geräte einzurichten. Man kann diese grundsätzlich auch nur temporär zur Einrichtung der Geräte auf seinem Rechner laufen lassen. Lässt man ihn aber 24/7 laufen, so erhält man einige interessante Statistiken.
Installation des Unifi Controllers
Bis vor kurzem war es noch möglich, den Unifi Controller mit einem einzigen Container zu installieren. Mittlerweile wurde aber die Datenbank ausgelagert. Man braucht also zwei Container. Einen für die Datenbank und einen für Unifi selbst.
Dazu machen wir uns die Docker „Stacks“ zunutze. Ein Stack ist eine Einheit aus mehreren Containern (und Volumes).
Ich lege also einen neuen Stack in Portainer an:

Diesem gebe ich einen Namen und füge folgenden Code im Webeditor ein.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
--- version: "2.1" services: unifi-network-application: image: lscr.io/linuxserver/unifi-network-application:latest container_name: unifi-network-application environment: - PUID=1000 - PGID=1000 - TZ=Europe/Berlin - MONGO_USER=unifi - MONGO_PASS=HIERPASSWORTEINGEBEN - MONGO_HOST=unifi-db - MONGO_PORT=27017 - MONGO_DBNAME=unifi_db - MEM_LIMIT=1024 #optional volumes: - /home/johannes/docker_data/unifi-network-application/config:/config ports: - 8443:8443 - 3478:3478/udp - 10001:10001/udp - 8080:8080 - 6789:6789 #optional depends_on: - unifi-db restart: unless-stopped unifi-db: image: mongo:4.4 container_name: unifi-db ports: - 27017:27017 volumes: - /home/johannes/docker_data/unifi-db/data:/data/db restart: unless-stopped |
Die Volumes musst du bei dir natürlich anpassen (nur den Teil vor dem Doppelpunkt). Ebenso das Passwort für die DB.
Anschließend klicke ich auf „Deploy this stack“, um den Unifi Controller samt Datenbank zu starten. Öffnet man jetzt die Weboberfläche des Unifi Controllers unter Port 8443, so erhält man ein „404 – Not found“. Das liegt daran, dass es in der Datenbank weder den Benutzer noch die Datenbank delbst gibt.
Konfiguration der Datenbank
Um das zu ändern, wählen wir im Abschnitt „Containers“ unseren Container mit der Datenbank, in meinem Fall „unifi-db“.

Dort klicken wir auf „Console“ und anschließend auf „connect“.

In der Konsole angekommen, geben wir mongo
ein, um in die Konsole der Datenbank zu kommen.

Dort legen wir einen Benutzer und zwei Datenbanken mit den Befehlen:
1 2 |
db.getSiblingDB("unifi_db").createUser({user: "unifi", pwd: "HIERPASSWORTEINGEBEN", roles: [{role: "dbOwner", db: "unifi_db"}]}); db.getSiblingDB("unifi_db_stat").createUser({user: "unifi", pwd: "HIERPASSWORTEINGEBEN", roles: [{role: "dbOwner", db: "unifi_db_stat"}]}); |
Das Passwort muss natürlich wieder das gleiche sein, wie das Passwort, was wir bei der Installation vom Unifi Controller angegeben haben.
Unifi Controller konfigurieren
Jetzt sieht man unter der Adresse https://IP_ADRESSE:8443 den Einrichtungsassistenten von Unifi:

Da ich von einem anderen Server umziehe, wähle ich hier den Punkt „Restore Server from a Backup“ und werde hier nicht weiter auf die Einrichtung eingehen.
Ändern des Inform Host
Der Unifi Controller in Docker erkennt nicht von selbst, welche IP-Adresse er hat. Damit man Geräte hinzufügen kann, muss er dies aber wissen, damit er die Adresse den Geräten mitteilen kann.
In den Systemeinstellungen des Unifi Controllers kann man das festlegen:

Fazit
Der Unifi Controller ist jetzt fertig installiert und konfiguriert!
Schreibe einen Kommentar