Macvlan – Unifi Controller + MongoDB

Änderungsstand: 2023-12-25

Ab nun wird die Mongo-DB und Unifi-Controller physisch getrennt. Das ist auch der Grund, weshalb die „alte“ Docker-Version nicht mehr funktioniert und auch ein Upgrade daraufhin scheinbar unmöglich ist. Hier die Vorgehensweise:

Zuerst ein Backup des alten Unifi-Controllers erstellen. Das benötige ich später um nicht alles neu einrichten zu müssen. Ich nehme hierbei das letzte Backup mit. Falls da etwas schief geht, habe ich meinen „alten“ Unifi-Controller immer noch da.

sudo mkdir /var/lib/UnifiDB
sudo nano /var/lib/UnifiDB/init-mongo.js

Folgendes trage ich dort ein (Passwort ändern!):

db.getSiblingDB("unifi").createUser({user: "unifi", pwd: "PASSWORT123", roles: [{role: "dbOwner", db: "unifi"}, {role: "dbOwner", db: "unifi_stat"}]});

Abgespeckte Variante. Mehr wird hier nicht benötigt.

Strg-x, y, Enter

sudo mkdir -p /home/dockervolumes
sudo mkdir -p /home/dockervolumes/unificontroller
cd /home/dockervolumes/unificontroller && sudo nano docker-compose.yml

Folgendes dort einfügen (eigene Werte überprüfen):

version: "3"
services:
  unifi-db:
    image: docker.io/mongo:4.4.8
    container_name: unifi-db
    restart: unless-stopped
    volumes:
      - /var/lib/UnifiDB/data:/data/db
      - /var/lib/UnifiDB/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro
    networks:
      default:
        ipv4_address: 192.168.30.13

  unifi-network-application:
    image: lscr.io/linuxserver/unifi-network-application:latest
    container_name: unifi-network-application
    restart: unless-stopped
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
      - MONGO_USER=unifi               ### Muss identisch zu den Einträgen in init-mongo.js sein
      - MONGO_PASS=PASSWORT123         ### Muss identisch zu den Einträgen in init-mongo.js sein - Passwort ändern!
      - MONGO_HOST=unifi-db
      - MONGO_PORT=27017
      - MONGO_DBNAME=unifi             ### Muss identisch zu den Einträgen in init-mongo.js sein
      - MEM_LIMIT=1024                 #optional
      - MEM_STARTUP=1024               #optional
    #  - MONGO_TLS=                    #optional
    #  - MONGO_AUTHSOURCE=             #optional
    volumes:
      - /var/lib/UnifiController/config:/config
    networks:
      default:
        ipv4_address: 192.168.30.14
networks:
  default:
    name: meinmacvlan30
    external: true

Strg-x, y, Enter

cd /home/dockervolumes/unificontroller && sudo docker compose up -d

Nach ca. 2 Minuten kann ich im Browser die Oberfläche starten: http s://IP_Address:8443

Wenn fertig installiert, erscheint das Startmenu:

Jetzt deaktiviere ich den „alten“ Controller und verwende anschließend „Restore Server from a Backup“ und bin hier fast fertig.

Da ich eine andere IP-Adresse am „neuen“ Unifi-Controller verwende, ändere ich diese in meiner Konfiguration:

  • „System“
    • „Erweitert“
      • Ziemlich weit unten bei „Host Informieren“: Überschreiben AN und die IP-Adresse des „neuen“ Unifi-Controllers eintragen (in meinem Fall: 192.168.30.14)
    • „Änderungen Anwenden“

Nun dauert es etwas, bis alle Geräte erkannt wurden. Am Folgetag wurde mein System wieder komplett erkannt. Zu keiner Zeit hatte ich während dieser Aktion Ausfälle im Betrieb.

Quelle: https://github.com/linuxserver/docker-unifi-network-application#application-setup

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten