Unifi Network Application Docker?

Ich verstehe die grundlegende Funktionsweise von Container Station und habe bereits ein paar Container bereitgestellt. Allerdings benötigt die Unifi Network Application (aktuell Version 10.0.162) MongoDB sowie die Initialisierung der Datenbank, damit die Unifi Network Application sie nutzen kann, einschließlich Benutzername und Passwort. Mein aktuelles Setup besteht aus einem Raspberry PI4B und ich habe ein vollständiges Backup.

Mein Setup ist ein TVS-H1688 und ich nutze die vier 2,5GB/s-Schnittstellen als LACP-LAG-Gruppe, die mit zwei VLANs gebündelt sind: VLAN 250, das ich hierfür in Virtual Switch 1 verwenden möchte. Das andere VLAN (Virtual Switch 5) ist mein IoT-VLAN, da ich plane, meinen Home Assistant irgendwann von seinem Raspberry PI4B darauf zu migrieren.

Ich habe Schwierigkeiten herauszufinden, wo ich die YAML-Datei ablegen muss, um den Container zu erstellen, und wie ich am besten festlege, wo der Speicherort sein soll und wie ich Virtual Switch 1 zuweise sowie die statische IP, Subnetzmaske, Standard-Gateway und DNS-Server einrichte.

Ich kann mir vorstellen, dass das schon jemand versucht hat. Vielen Dank im Voraus.

Ich habe eine einfachere Lösung für dich. Wenn du MyQNAP.org zum App Center-Repository hinzufügst, gibt es eine native Unifi-Anwendung, die direkt auf dem QNAP läuft. Es ist nicht nötig, sie in einem Container auszuführen.

Gehe in die Einstellungen im App Center und füge den MyQNAP.org-Repository-Link hinzu:

Unter „System Administration“ findest du dann die UniFi Controller-App.

Sie funktioniert hervorragend.

Hallo @kahilzinger

Ich habe ein Docker-Image für UniFi auf DockerHub gefunden.

Ich weiß nicht, ob das deinen Anforderungen entspricht, aber ich habe diese YAML-Datei ausprobiert und sie hat bei mir problemlos funktioniert.

Du kannst sie dir anschauen. Ersetze die Variablen mit $ durch deine NAS-Einstellungen.

version: "3.8"

services:
  unifi:
    image: jacobalberty/unifi:latest
    container_name: unifi-controller
    restart: unless-stopped

    networks:
      qnet-network:
        ipv4_address: ${QNET_STATIC_IP}

    environment:
      TZ: ${TZ}

    volumes:
      - ${SHARE_FOLDER}/unifi:/unifi

networks:
  qnet-network:
    driver_opts:
      iface: ${QNET_INTERFACE}
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: ${QNET_INTERFACE}
      config:
        - subnet: ${QNET_SUBNET}
          gateway: ${QNET_GATEWAY}

Du kannst das ${QNET_INTERFACE} per SSH und mit dem ifconfig-Befehl herausfinden.

Beachte jedoch bitte, dass dieser Container / das Docker-Image eine Drittanbieteranwendung ist und kein QNAP-Produkt, daher solltest du auf Datensicherung und Stabilität achten.

====

version: "3.8"

services:
  unifi:
    image: jacobalberty/unifi:latest
    container_name: unifi-controller
    restart: unless-stopped

    networks:
      qnet-network:
        ipv4_address: 10.20.80.54

    environment:
      TZ: ${TZ}

    volumes:
      - /share/Container/unifi:/unifi

networks:
  qnet-network:
    driver_opts:
      iface: bond0
    driver: qnet
    ipam:
      driver: qnet
      options:
        iface: bond0
      config:
        - subnet: 10.20.80.0/23
          gateway: 10.20.80.254

Ich habe dies versucht, jedoch war tcp/8080 durch die Konsole belegt (kürzlich auf einen anderen Port geändert) und ich weiß nicht, welcher Port für die /inform-Webseite verwendet wird und wie ich diesen jetzt auf 8080 ändern könnte, da ich diesen Port nicht mehr benutze.

Gibt es eine Möglichkeit, diese Anwendung auf mein anderes Adapter-Team/virtuellen Switch zu verschieben?

Ich würde diese Methode gerne verwenden, wenn ich könnte. Es sieht so aus, als wäre der virtuelle Switch, den ich verwenden möchte, „qvs0“. Allerdings sehe ich zwei Dinge, die ich tun möchte:

1.) Wie bestimme ich den Speicherort des Volumes?
2.) Du musst MongoDB installieren und initialisieren.

Wenn ich jemanden finden könnte, der mir dabei hilft, würde ich ihn gerne bezahlen, weil ich lernen möchte und ein absoluter Anfänger im Umgang mit Docker bin. Aber ich könnte mir vorstellen, das viel öfter zu nutzen, besonders im Bereich Heimautomatisierung.

Hier ist das Skript, das ich gefunden habe und zu verstehen versuche:


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=America/Chicago
  • MONGO_USER=unifi
  • MONGO_PASS=[[password]]
  • MONGO_HOST=unifi-db
  • MONGO_PORT=27017
  • MONGO_DBNAME=unifi
  • MEM_LIMIT=1024 #optional
  • MEM_STARTUP=1024 #optional

- MONGO_TLS= #optional

- MONGO_AUTHSOURCE= #optional

volumes:
  - /home/ubuntu/docker/unifi-controller:/config  <--Muss herausfinden, wo.
ports:
  - 8443:8443
  - 3478:3478/udp
  - 10001:10001/udp
  - 8080:8080
  - 1900:1900/udp #optional
  - 8843:8843 #optional
  - 8880:8880 #optional
  - 6789:6789 #optional
  - 5514:5514/udp #optional
labels:
  - "traefik.enable=true"
  - "traefik.http.routers.unifi.entrypoints=http"
  - "traefik.http.routers.unifi.rule=Host(`unifi.jimsgarage.co.uk`)"
  - "traefik.http.middlewares.unifi-https-redirect.redirectscheme.scheme=https"
  - "traefik.http.routers.unifi.middlewares=unifi-https-redirect"
  - "traefik.http.routers.unifi-secure.entrypoints=https"
  - "traefik.http.routers.unifi-secure.rule=Host(`unifi.jimsgarage.co.uk`)"
  - "traefik.http.routers.unifi-secure.tls=true"
  - "traefik.http.routers.unifi-secure.service=unifi"
  - "traefik.http.services.unifi.loadbalancer.server.port=8443"
  - "traefik.http.services.unifi.loadbalancer.server.scheme=https"
  - "traefik.docker.network=proxy"
networks:  <--Wo würde ich den virtuellen Switch und die statische IP hier zuweisen?
  proxy:
  unifi:
restart: unless-stopped

unifi-db:
image: docker.io/mongo:4.4
container_name: unifi-db
volumes:

  • /home/ubuntu/docker/unifi-controller-db:/data/db <–Muss herausfinden, wo.
  • /home/ubuntu/docker-compose/unifi-controller/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro <–Muss herausfinden, wo.
    networks: <–Brauche ich hier eine statische IP und einen virtuellen Switch?
    unifi:
    restart: unless-stopped

networks:
proxy:
external: true
unifi:

! Das Folgende ist das JavaScript zur Initialisierung der MongoDB-Datenbank
!
! init-mongo.js
! db.getSiblingDB(„unifi“).createUser({user: „unifi“, pwd: „[[password]]“, roles: [{role: „dbOwner“, db: „unifi“}]});
! db.getSiblingDB(„unifi_stat“).createUser({user: „unifi“, pwd: „[[password]]“, roles: [{role: „dbOwner“, db: „unifi_stat“}]});

Du solltest unbedingt den vorformatierten Textblock verwenden.

Du musst den Reiter „Application“ nutzen, um deine compose.yaml zu exportieren.

volumes: entspricht hostPath:containerMountPoint

Ich habe den Dateibrowser verwendet, um ein docker/-Share zu erstellen, daher sieht bei mir alles so aus:

[admin@TheVault arcane]# ls /share/docker/*
/share/docker/appdata:
NUTCase         jellyfin        portical-upnpc
arcane          kuma            qbittorrent
homepage        nutify          syncyomi

/share/docker/compose:
basic-app

/share/docker/scripts:
#secrets#

/share/docker/secrets:
#other secrets#

/share/docker/stacks:
NUTCase        homepage       pihole-qnet    qbittorrent    uptime-kuma
arcane         jellyfin       pocket-id      syncyomi       watchtower
dozzle         nutify         portainer-ce   tasmocompiler
[admin@TheVault arcane]#

Sei darauf vorbereitet, auf CS-Einschränkungen zu stoßen, die das Leben etwas nervig machen können.

Aber CS startet Arcane/Dockge/Portainer problemlos, und dann kannst du von dort weitermachen.
Langfristig wird dir das wahrscheinlich das Leben erleichtern.

Musst du die UniFi-App unbedingt in einem Docker-Container ausführen? Wie ich oben schon gesagt habe, gibt es bereits eine „native“ App für die UniFi-Konsole im MyQNAP.org-Repo. Das ist viel einfacher, als einen Container einzurichten und dann die App zu installieren…

Da 8080 nicht reagiert, weil ich 8080 für die Konsole verwendet habe, würde ich es bevorzugen, wenn es nach Möglichkeit ein Container wäre.

Ich werde versuchen, das besser zu verstehen. Ich gehöre zu denen, die es lernen, sobald sie es sehen und verstehen, wie es funktioniert. Es gibt nur keine Videos, die den Qnap Container Station verwenden.

Entschuldigung wegen der Formatierung… Das ist mir aufgefallen, als ich auf „Antworten“ geklickt habe.

Wenn jemand bereit ist, eine Remote-Sitzung einzurichten, um mir zu helfen, bin ich bereit, dafür zu bezahlen.

Wie installiert man die UniFi Network Application über Docker auf einem QNAP NAS? | QNAP