私は基本的なContainer Stationについては理解しており、いくつかデプロイもしています。しかし、Unifi Network Application(現在バージョン10.0.162)にはMongoDBが必要であり、さらにUnifi Network Applicationが使用するためのデータベースの初期化や、ユーザー名・パスワードの設定も必要です。現在のセットアップはRaspberry PI4Bで、完全なバックアップもあります。
私のセットアップはTVS-H1688で、4つの2.5GB/sインターフェースをLACPラググループとしてまとめ、2つのVLANでトランク接続しています。VLAN 250はVirtual Switch 1に割り当てており、これを今回の用途に使いたいと考えています。もう一つのVLAN(Virtual Switch 5)はIoT VLANで、最終的にはHome AssistantをRaspberry PI4Bから移行する予定です。
コンテナを構築するためのYAMLファイルをどこに置けばよいのか、またストレージの配置先やVirtual Switch 1の割り当て、さらに静的IP、サブネットマスク、デフォルトゲートウェイ、DNSサーバーの設定方法について悩んでいます。
同じことを試みた方がいると思います。事前に感謝します。
NA9D
2
もっと簡単な方法があります。App CenterのリポジトリにMyQNAP.orgを追加すれば、QNAP上で直接動作するネイティブのUnifiアプリケーションがあります。コンテナで実行する必要はありません。
App Centerの設定に入り、MyQNAP.orgのリポジトリリンクを追加してください:
その後、「システム管理」の下にUniFi Controllerアプリが表示されます。
とても快適に動作します。
こんにちは @kahilzinger
DockerHubでUniFi用のDockerイメージを見つけました。
ご要望に合うかは分かりませんが、このYAMLファイルを使ってみたところ、私の環境では問題なく動作しました。
ご参考までにご覧ください。$の変数部分はご自身のNAS設定に置き換えてください。
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}
${QNET_INTERFACE}はsshでifconfigコマンドを使って確認できます。
ただし、このコンテナ/Dockerイメージはサードパーティ製アプリケーションであり、弊社QNAP製品ではありませんので、データのバックアップや安定性には十分ご注意ください。
====
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
これを試してみましたが、tcp/8080はコンソールによって使用されていました(最近別のポートに変更しました)。そして、/informウェブページがどのポートを使用しているのか分からず、今はそのポートを使っていないので8080に変更する方法も分かりません。
このアプリケーションを他のアダプタチームや仮想スイッチに移動する方法はありますか?
この方法が使えるなら使いたいと思います。使いたい仮想スイッチは「qvs0」のようですが、やりたいことが2つあります。
1.) ボリュームの場所をどうやって特定するのか?
2.) MongoDBをインストールして初期化する必要がある。
もしこれを手伝ってくれる人が見つかれば、喜んでお金を払います。Dockerは初心者ですが、学びたいし、ホームオートメーション分野ではこれをもっと使うようになる気がします。
私が見つけて、理解しようとしているスクリプトはこちらです:
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 #オプション
- MEM_STARTUP=1024 #オプション
- MONGO_TLS= #オプション
- MONGO_AUTHSOURCE= #オプション
volumes:
- /home/ubuntu/docker/unifi-controller:/config ←どこにすればいいか要確認
ports:
- 8443:8443
- 3478:3478/udp
- 10001:10001/udp
- 8080:8080
- 1900:1900/udp #オプション
- 8843:8843 #オプション
- 8880:8880 #オプション
- 6789:6789 #オプション
- 5514:5514/udp #オプション
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: ←ここで仮想スイッチや静的IP情報をどこに割り当てる?
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 ←どこにすればいいか要確認
- /home/ubuntu/docker-compose/unifi-controller/init-mongo.js:/docker-entrypoint-initdb.d/init-mongo.js:ro ←どこにすればいいか要確認
networks: ←ここで静的IPや仮想スイッチが必要?
unifi:
restart: unless-stopped
networks:
proxy:
external: true
unifi:
! 以下はMongoDBデータベース初期化用のJavaScriptです
!
! 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”}]});
Weedy
6
プリフォーマットされたテキストブロックを必ず使う必要があります。
compose.yamlをダンプするには、アプリケーションタブを使用する必要があります。
volumes:はhostPath:containerMountPointです。
私はファイルブラウザを使ってdocker/共有を作成したので、私の場合はすべて次のようになります:
[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]#
CSの制限により、面倒なことが起こる可能性があるので覚悟してください。
ですが、CSはArcane/Dockge/Portainer(ポータイナー)を問題なく起動でき、その後はそのまま進めることができます。
長期的にはその方が楽になるでしょう。
NA9D
7
UniFiアプリを必ずDockerコンテナで実行する必要がありますか? 上述した通り、MyQNAP.orgリポジトリにはUniFiコンソール用の「ネイティブ」アプリがすでにあります。コンテナをセットアップしてからアプリをインストールするよりも、はるかに簡単です…
8080はコンソール用に使用しているため応答せず、可能であればコンテナとして利用したいと考えています。
これをもっとよく理解しようと思います。私は、一度見て仕組みが分かれば学べるタイプです。ただ、Qnap Container Stationを使った動画が全くありません。
フォーマットについてはすみません…返信ボタンを押したときに気付きました。
もし誰かがリモートセッションで手伝ってくれるのであれば、報酬をお支払いする意思があります。