私は基本的な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を使った動画が全くありません。
フォーマットについてはすみません…返信ボタンを押したときに気付きました。
もし誰かがリモートセッションで手伝ってくれるのであれば、報酬をお支払いする意思があります。
すみません。思った通りには動作しませんでしたが、どうやら私のPIに入っているバージョンに合わせてアップデートされたようです。
そのバージョンをインストールしようとすると、どの仮想スイッチを使うか選択するオプションが表示されません。デフォルトでVirtual Switch 5(アダプター1+2+3+4、VLAN 253でタグ付けされており、これは私のIoTネットワークです)になってしまいますが、これは間違ったサブネットです。本当はVirtual Switch 1(アダプター1+2+3+4、タグなし)にインストールしたいのですが、MondoやUniFi Network APをインストールするときに、どのアダプターセットやどの仮想スイッチに割り当てるかを設定する方法が分かりません。これが解決できれば、もしかするとこの方法でいけるかもしれません。
Dockerとcompose、そしてqnetについてはすでに上で言及されています
NA9D
15
「ネットワーク」と「仮想スイッチ」内で使用する仮想スイッチを変更できるはずです。
それはわかっているのですが、どうやればいいのか脳がうまく理解できません。誰かに助けてもらうためにお金を払っても構わないと思っています。YouTubeの動画を見たり、誰かがやっているのを見て学ぶのは得意なんですが、残念ながら、YouTubeにはUnifiサーバーについてステップバイステップで説明しているものが本当にありません。
Tautulliコンテナのアップデート方法がどうしても理解できず、でもどうしてもアップデートしたいんです。
NA9D
17
コンテナを作成したら、Network and Virtual Switch を開きます。下部の「Advanced」ボタンをクリックしてください:
次に、Virtual Switch へ移動します:
作成したすべての仮想スイッチとネットワークが表示されます。使用したい(あなたのコンテナが接続されている)ものを選択し、右側の三つの点をクリックします。メニューが表示されるので「Configure(設定)」を選択してください。新しいウィンドウが開きます:
この仮想ネットワークで使いたいアダプターを選択します。私は今、Adapter 1 から Adapter 3 に変更しました。
ほかに必要なネットワーク設定を確認して、最後に「適用」してください。これでコンテナネットワークは新しく選んだアダプターに接続されます…
QNAPのWebインターフェースを8080以外に変更するには、Control Panel(コントロールパネル) / General Settings(一般設定)に行き、システムポートを好きな番号に変更します。
この説明が役立ったかどうか、ぜひ教えてください。
その点は理解していますし、あなたのスクリーンショットも素晴らしいですが、Unifi Network Server には MongoDB コンテナも必要なんです。
NA9D
19
MongoDB は YAML で設定する必要があります。YAML で IP アドレスを定義している例を見たことがありますが、ご利用のセットアップで何が必要かは分かりません。参考までに、MariaDB のインスタンスを使用する Vikunja インストール時の私の YAML を載せておきます:
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
すべて自動でやってくれます。自分では何もする必要がありません……。