Aplikasi Unifi Network Docker?

Saya memahami dasar-dasar Container Station dan telah menerapkan beberapa container. Namun, Unifi Network Application (saat ini di versi 10.0.162) memerlukan MongoDB serta inisialisasi database agar Unifi Network Application dapat digunakan beserta username dan password-nya. Setup saya saat ini adalah Raspberry PI4B dan saya sudah memiliki backup penuh.

Setup saya adalah TVS-H1688 dan saya menggunakan empat antarmuka 2.5GB/s sebagai grup LACP lag yang ditrunk dengan dua VLAN, VLAN 250 yang ingin saya gunakan untuk ini ke Virtual Switch 1. VLAN lainnya (Virtual Switch 5) adalah VLAN IoT saya karena saya berencana untuk memindahkan Home Assistant dari Raspberry PI4B ke sana di masa mendatang.

Saya cukup kesulitan mencari tahu di mana menempatkan file YAML untuk membangun container dan apa yang sebaiknya saya gunakan terkait penempatan storage serta di mana mengatur Virtual Switch 1, lalu IP statis, subnet mask, default gateway, dan server DNS.

Saya yakin pasti ada yang pernah mencoba ini. Terima kasih sebelumnya.

Saya punya solusi yang lebih mudah untuk Anda. Jika Anda menambahkan MyQNAP.org ke repository App Center, ada aplikasi Unifi native yang dapat berjalan langsung di QNAP. Tidak perlu menjalankannya di dalam Container.

Masuk ke pengaturan di App Center dan tambahkan tautan repository MyQNAP.org:

Kemudian di bawah “System Administration” Anda akan menemukan aplikasi UniFi Controller.

Aplikasi ini bekerja dengan sangat baik.

Hai @kahilzinger

Saya menemukan Docker image untuk UniFi di DockerHub.

Saya tidak tahu apakah ini sesuai dengan kebutuhan Anda, tetapi saya mencoba menggunakan file YAML ini dan berhasil di sisi saya.

Anda bisa melihatnya. & Ganti variabel yang ada tanda $ dengan pengaturan NAS Anda.

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}

Anda bisa menemukan ${QNET_INTERFACE} dari ssh dan perintah ifconfig.

Namun, harap diperhatikan bahwa container / docker image ini adalah aplikasi pihak ketiga, bukan produk QNAP kami, jadi Anda perlu memperhatikan backup data dan stabilitas.

====

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

Saya sudah mencoba ini, namun tcp/8080 sedang digunakan oleh konsol (baru-baru ini diganti ke port lain) dan saya tidak tahu port apa yang digunakan untuk halaman web /inform serta bagaimana cara mengubahnya ke 8080 sekarang karena saya sudah tidak menggunakan port tersebut.

Apakah ada cara untuk memindahkan aplikasi ini ke adapter tim/switch virtual saya yang lain?

Saya ingin menggunakan metode ini jika memungkinkan. Sepertinya virtual switch yang ingin saya gunakan adalah “qvs0”, namun saya melihat ada dua hal yang ingin saya lakukan:

1.) Bagaimana cara menentukan lokasi volume?
2.) Anda harus menginstal MongoDB dan menginisialisasinya.

Jika saya bisa menemukan seseorang untuk membantu saya melakukan ini, saya akan dengan senang hati membayar mereka karena saya ingin belajar dan saya benar-benar pemula dalam hal Docker, tetapi saya bisa melihat bahwa saya akan sering menggunakan ini, terutama dalam dunia Otomasi Rumah saya.

Berikut adalah skrip yang saya temukan dan sedang saya coba pahami:


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 #opsional
  • MEM_STARTUP=1024 #opsional

- MONGO_TLS= #opsional

- MONGO_AUTHSOURCE= #opsional

volumes:
  - /home/ubuntu/docker/unifi-controller:/config  <--Perlu mencari tahu di mana.
ports:
  - 8443:8443
  - 3478:3478/udp
  - 10001:10001/udp
  - 8080:8080
  - 1900:1900/udp #opsional
  - 8843:8843 #opsional
  - 8880:8880 #opsional
  - 6789:6789 #opsional
  - 5514:5514/udp #opsional
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:  <--Di mana saya harus menetapkan virtual switch dan informasi IP statis di sini?
  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 <–Perlu mencari tahu di mana.
  • /home/ubuntu/docker-compose/unifi-controller/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro <–Perlu mencari tahu di mana.
    networks: <–Apakah saya perlu IP statis di sini dan virtual switch?
    unifi:
    restart: unless-stopped

networks:
proxy:
external: true
unifi:

! Di bawah ini adalah skrip java untuk menginisialisasi Database MongoDB
!
! 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”}]});

Anda benar-benar perlu menggunakan blok teks yang sudah diformat.

Anda perlu menggunakan tab aplikasi untuk mengekspor compose.yaml Anda.

volumes: adalah hostPath:containerMountPoint

Saya menggunakan file browser untuk membuat share docker/, jadi untuk saya semuanya adalah:

[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]#

Bersiaplah untuk menghadapi keterbatasan CS yang bisa membuat hidup Anda sedikit merepotkan.

Namun CS akan menjalankan Arcane/Dockge/Portainer dengan baik, dan setelah itu Anda bisa lanjut dari sana.
Kemungkinan besar ini akan membuat hidup Anda lebih mudah dalam jangka panjang.

Apakah Anda perlu menjalankan aplikasi UniFi di dalam container Docker? Seperti yang saya katakan di atas, sudah ada aplikasi “native” untuk konsol UniFi di repo MyQNAP.org. Itu jauh lebih mudah daripada menyiapkan container lalu menginstal aplikasinya…

Karena 8080 tidak merespons sejak saya menggunakan 8080 untuk konsol dan saya lebih memilih jika memungkinkan itu dijalankan sebagai container.

Saya akan mencoba memahami ini dengan lebih baik. Saya termasuk orang yang jika sudah melihat dan tahu cara kerjanya, saya bisa belajar. Hanya saja tidak ada video yang menggunakan Qnap Container Station.

Maaf soal formatnya… Saya baru sadar setelah menekan balas.

Jika ada yang bersedia mengadakan sesi remote untuk membantu saya, saya bersedia membayar.

Bagaimana Cara Mendeploy UniFi Network Application melalui Docker di QNAP NAS? | QNAP

Maaf. Itu tidak melakukan apa yang saya inginkan, tapi sepertinya mereka sudah memperbaruinya ke versi yang sesuai dengan yang saya punya di PI saya.

Saat saya mencoba menginstal versi tersebut, saya tidak mendapatkan opsi untuk memilih virtual switch mana yang ingin saya gunakan. Secara default, ia memilih Virtual Switch 5 (Adapter 1+2+3+4 tapi VLAN 253 bertanda — ini jaringan IoT saya), yang merupakan subnet yang salah. Saya ingin menginstalnya ke Virtual Switch 1 (Adapter 1+2+3+4 tanpa tag VLAN). Saya belum menemukan cara untuk mengatur set adapter atau virtual switch mana yang ditetapkan saat menginstal Mondo dan UniFi Network AP. Jika saya bisa menyelesaikan ini, mungkin ini solusinya.

Docker dengan compose dan qnet sudah disebutkan di atas

Anda seharusnya bisa mengubah virtual switch yang digunakan di Network and Virtual Switch.

Saya sadar akan hal itu, dan entah kenapa otak saya belum nyambung dengan cara melakukannya. Saya bersedia membayar seseorang untuk membantu saya. Saya biasanya cukup cepat belajar kalau menonton video YouTube atau melihat seseorang melakukannya secara langsung. Sayangnya, di YouTube belum ada panduan langkah demi langkah untuk server Unifi.

Saya juga tidak bisa memahami cara memperbarui container Tautulli saya, padahal saya ingin sekali melakukannya.

Setelah kontainer Anda dibuat, buka Network and Virtual Switch. Klik tombol Advanced di bagian bawah:

Lalu pergi ke Virtual Switch:

Anda akan melihat semua virtual switch dan jaringan yang sudah dibuat. Pilih yang ingin Anda gunakan (yang terhubung dengan Container Anda) dan klik tiga titik kecil di sebelah kanan. Akan muncul menu pop-up – pilih Configure. Jendela baru akan terbuka:

Pilih adapter yang ingin Anda gunakan untuk Virtual Network ini. Di sini saya memindahkannya dari Adapter 1 ke Adapter 3.

Periksa kembali pengaturan lain yang diinginkan untuk jaringan tersebut dan terapkan di akhir. Sekarang jaringan kontainer Anda akan diarahkan ke adapter yang baru dipilih…

Untuk mengubah web interface QNAP dari port 8080, buka Control Panel / General Settings dan ubah system port ke nomor port yang Anda inginkan.

Silakan beritahu saya jika panduan ini membantu.

Saya paham, dan tangkapan layar kamu sudah bagus, tapi Unifi Network Server juga memerlukan kontainer MongoDB.

MongoDB seharusnya sudah diatur di YAML-mu. Saya pernah melihat contoh YAML di mana sebuah IP didefinisikan. Saya tidak yakin apa yang dibutuhkan untuk pengaturanmu. Berikut ini YAML saya dari instalasi Vikunja yang menggunakan instance MariaDB:

services:
  vikunja:
    image: vikunja/vikunja:latest
    stdin_open: true
    tty: true
    user: "0:0"
    dns: 192.168.0.4
    environment:
      VIKUNJA_SERVICE_PUBLICURL: http://192.168.0.3:3456
      VIKUNJA_DATABASE_HOST: db
      VIKUNJA_DATABASE_PASSWORD: ********
      VIKUNJA_DATABASE_TYPE: mysql
      VIKUNJA_DATABASE_USER: vikunja
      VIKUNJA_DATABASE_DATABASE: vikunja
      VIKUNJA_SERVICE_JWTSECRET: <a super secure random secret>
      VIKUNJA_SERVICE_ENABLETASKATTACHMENTS: true
      VIKUNJA_SERVICE_ENABLEEMAILREMINDERS: true
      VIKUNJA_MAILER_ENABLED: true
      VIKUNJA_MAILER_AUTHTYPE: login
      VIKUNJA_MAILER_FORCESSL: false
      VIKUNJA_MAILER_SKIPTLSVERIFY: true
      VIKUNJA_MAILER_HOST: IP.IP.IP.IP
      VIKUNJA_MAILER_PORT: 587
      VIKUNJA_MAILER_USERNAME: emailaddy@host.com
      VIKUNJA_MAILER_PASSWORD: some_stupid_password
      VIKUNJA_MAILER_FROMEMAIL: emailaddy@host.com
      VIKUNJA_SERVICE_TIMEZONE: America/Chicago
    ports:
      - 3456:3456
    volumes:
      - /share/Container/vikunja/files:/app/vikunja/files
    depends_on:
      db:
        condition: service_healthy
    restart: unless-stopped
    
  db:
    image: mariadb:10
    command: --character-set-server=utf8mb4 --collation-server=utf8mb4_unicode_ci
    environment:
      MYSQL_ROOT_PASSWORD: **********
      MYSQL_USER: vikunja
      MYSQL_PASSWORD: **********
      MYSQL_DATABASE: vikunja
    volumes:
      - /share/Container/vikunja/db:/var/lib/mysql
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "mysqladmin ping -h localhost -u $$MYSQL_USER --password=$$MYSQL_PASSWORD"]
      interval: 2s
      start_period: 30s

Semuanya otomatis. Saya tidak perlu melakukan apa-apa…