Dockerの使用

Dockerの使用

最近、UniFi nanoHD アクセス ポイントを 2 台購入しましたが、クラウド キーは購入していません。macOS コンピューターで UniFi ネットワーク アプリケーション (旧称 UniFi ネットワーク コントローラー) を実行するにはどうすればよいですか?

答え1

これを行うには 2 つの異なる方法があることを私は知っています。


Dockerの使用

これは、すでに Docker に精通している場合は良いオプションかもしれませんが、そうでない場合は学習する価値がないかもしれません。UniFi ネットワーク アプリケーションには、適切に管理された 2 つの Docker イメージがあるようです。

Docker で実行する場合、導入を機能させるには追加の作業が必要です。Docker のデフォルトのネットワーク タイプ (ブリッジ) では、ネットワーク上でコンテナーにアクセスできません。レイヤー 2 の導入については、Jacob Alberty のイメージのドキュメントで、ホスト ネットワークまたは macvlan ネットワークの使用について言及されています。Linux でこの Docker イメージを使用してホスト ネットワークを使用しましたが、うまく機能しました。ただし、この記事の執筆時点 (2022-04-10) では、ホスト ネットワークは macOS Docker Desktop では使用できません。macvlan の使用は試していませんが、うまく機能する可能性があります (LinuxServer.io のドキュメントでは言及されていませんが、どちらのイメージでも)。レイヤー 3 の導入については、UniFi ネットワーク アプリケーションの設定で Docker ホストの IP を入力する必要があるようです (両方の Docker イメージのドキュメントには、設定を見つける場所の詳細が記載されています)。

Jacob Alberty イメージには、https 証明書の指定に対するサポートが含まれているようです。試したことはありませんが、ブラウザによって信頼されている証明書を使用することが重要な場合は、これが Jacob Alberty イメージを選択する理由になるかもしれません。


ネイティブインストール

これは問題なく動作し、実行するのはそれほど難しくありませんが、残念ながら、必要以上に作業が増えてしまいました。

  1. ご希望のバージョンをダウンロードしてください

    「UniFi Network Application [バージョン] for macOS」を探しますUnifiダウンロードページ特に好みがない場合は、最新バージョンを選択してください。

  2. ネットワークアプリケーションをインストールする

    Finder で UniFi.pkg を見つけます。Control キーを押しながらクリックして、Open with...→ インストーラを選択します。これがないと、macOS は「Apple が悪意のあるソフトウェアをチェックできないため、'UniFi.pkg' を開くことができません」というエラーを表示します。プロンプトが表示されたら「開く」を選択し、インストーラを続行します。

  3. Java 11をインストールする

    2023-08-27 からのメモ: この手順をスキップすることもできます。もう必要ないかもしれません。バージョン 7.4.162 をインストールできましたが、Java がインストールされていないと思うので、今はバンドルされている可能性があります。または、間違っているかもしれません。リリース ノートには何も記載されていません。

    注意: 7.3.xより前のバージョンではJava 8が必要でしたので、ネットワークアプリケーションの古いバージョンをインストールする場合は、この回答の以前の改訂版Java 8 のインストールに関するアドバイスと、ネットワーク アプリケーションの古いバージョンを起動するためのコマンドについては、こちらを参照してください。

    バージョン 7.3.x 以降では、Java 11 が必要です。(2023 年 1 月 13 日現在、リリース ノートには「Java 12 以降はまだサポートされていません」と記載されています。おそらく、Java 13 から 19 もサポートされていません。)

    Homebrew でのインストールは簡単です:

    1. フォローHomebrewのインストール手順まだお持ちでない場合は、
    2. ターミナルで、 を実行しますbrew install openjdk@11。私の場合、これにより 24 個の依存関係もインストールされました。
    3. 上記のコマンドの出力で示唆されているように、システム Java ラッパーがこの JDK を見つけられるようにシンボリック リンクを作成します。sudo ln -sfn /usr/local/opt/openjdk@11/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-11.jdk
  4. セキュリティ設定を調整する

    注意:これらの手順はmacOS 13 Venturaの設定の見直しにより大幅に変更されました。この回答の以前の改訂版macOS 12 以前のガイダンスについては、こちらを参照してください。ただし、これらの手順は、ネットワーク アプリケーションおよび Java 11 の新しいバージョンでは正確でない可能性があることに注意してください。

    1. システム設定 → ネットワークに移動します。ファイアウォールを選択して、Options...ボタンをクリックします。Block all incoming connectionsオフになっていることを確認します。他の変更は必要ありません。[OK] をクリックして保存します。

      いくつかの注意事項:

      • 有効になっている場合はAutomatically allow downloaded signed software to receive incoming connections、ネットワーク アプリケーションへのアクセスを許可するだけで十分です。
      • 無効になっている場合はAutomatically allow downloaded signed software to receive incoming connections、ネットワーク アプリケーションの起動時に着信接続を許可するように求められます。
      • 着信接続が許可されているアプリのリストに積極的に追加することApplications/UniFiは機能しないようです。理由はわかりません。しかし、それは重要ではありません。macOS は必要に応じて後でそれについてプロンプトを表示します。
      • 上記のファイアウォールの変更の代わりに、ファイアウォールを完全にオフにすることもできますが、お勧めしません。ファイアウォールは、便利な保護層を提供します。
    2. ネットワーク アプリケーションを起動してみます。今後起動する必要がある場合はいつでもこのプロセスを使用します。アプリケーション フォルダーから UniFi アプリを実行するか、+を使用してSpace「UniFi」を検索します。次のエラー ダイアログが表示されます。

      「『UniFi.app』は破損しているため開けません。ゴミ箱に移動してください。このファイルは不明な日付にダウンロードされました。」と表示され、「ゴミ箱に移動」と「キャンセル」のボタンがある macOS ダイアログ ウィンドウのスクリーンショット
    3. 「破損」は正確ではありません。macOS が、正しく動作しないようにしているだけです。[キャンセル] ボタンをクリックし、[システム設定] → [プライバシーとセキュリティ] に移動します。すべてのアプリケーションを下にスクロールして、[セキュリティ] の見出しを探します。次のダイアログが表示されます。

      「'UniFi.app' は、識別された開発元ではないため、使用がブロックされました。」という注意書きと「とにかく開く」ボタンがある macOS のプライバシーとセキュリティ設定ウィンドウのスクリーンショット。
    4. 「とにかく開く」ボタンを使って承認してください。2番アプリケーションが破損していることを示すダイアログ:

    「'UniFi.app' は破損しているため開くことができません。ゴミ箱に移動してください。このファイルは不明な日付にダウンロードされました。」と表示され、「開く」、「ゴミ箱に移動」、「キャンセル」のボタンがある macOS ダイアログ ウィンドウのスクリーンショット
    1. macOS がここで何を訴えているのかはわかりません。これを無視して、「開く」ボタンをクリックしてください。(補足: macOS ユーザー エクスペリエンスのこの領域は、本当に改善が必要です。)

      macOS が「アプリケーション 'UniFi.app' が着信ネットワーク接続を受け入れるようにしますか?」と尋ねた場合、ネットワーク アプリケーションが正しく機能するには「許可」をクリックする必要があります。

2 つのフォローアップ ノート:

  1. ネットワーク アプリケーションの使用が終わったら、ファイアウォールへの変更を元に戻すことができます (常に実行したままにしておく予定がない場合)。ただし、UniFi が着信接続を受信できるようにしただけであれば、ファイアウォールの変更はほとんど無害です。

  2. ネットワークアプリケーションを「ヘッドレス」で実行することもできます。私は試していませんが、https://akrabat.com/run-the-unifi-controller-headless-on-mac/有望そうです。このページで提案されているものとは異なる exec 文字列を使用する必要があることに注意してください。

答え2

簡単な手順でDockerで動作させることができました!guthub の docker 設定詳細な手順は記載されていませんが、基本的な手順は次のとおりです。

  1. UniFi がマシン上の永続データを保存する場所を決定します。

  2. docker compose スクリプトを実行します。

  3. https://localhost:8443 にアクセスし、初期設定を完了します。

  4. 設定に移動して、マシンの IP アドレスを入力します。

関連情報