今、OpenClawとかn8nとかが流行っていて、Mac Miniが地味に売れているらしい。しかし、その値段なら、GDX Sparkとかのほうが潰しが効くんじゃないかと思うがそうでもない様子。最近地味に、遭遇するのが、HTTPSあるいは、localhostじゃないとダッシュボードにアクセスできない系の問題。
Open WebUIもマイク入力などのデバイスを使う場合は、この条件に当てはまる。
HTTPSアクセスができない場合は、手元の端末から、SSHでDockerホストにログイン。(httpsあるいは、localhostじゃないとブラウザがマイクを使わせてくれない。)
ssh -L 3000:localhost:3000 user@server
その後、ブラウザでhttp://localhost:3000 へアクセスすればマイクが使える。
そう、この手の問題は、ローカルホストで立ち上げれば、SSHをしなくてもいい。なので、ローカルホストで動かせるパワフルなマシンということでMac Miniということになる。納得。まぁ、GDX SparkもUbuntu Desktopだから普通のデスクトップOSなのだが。Arm64 Linuxに全振りというのもなぁということなんだろうか。
これが嫌なら、Open WebUIをHTTPS化する、つまり、Open WebUIの前に、nginxに証明書を食わせて起動することになる。これは正式な動きだが、enginxと証明書の導入のハードルがめちゃくちゃ高い。まして、LAN内の環境なら、Lets Encryputの証明書の自動更新もできない。
そこで、HTTPS化したNASの出番である。NASのReverse Proxyを使えば、なんでもHTTPS化したサーバにすることができる。Reverse ProxyがついているNASをHTTPS化していないNASは、単純なSAMBA,NFSサーバでしかない。クラウドやAIは語ってはいけない環境。
閑話休題
NASに証明書をいれてある環境のReverse Proxyを使って、Open WebUIを使う方法
事前準備
ホスト名証明書を使う場合
NASが持っている、Dynamic DNSサービスとLets Encrypt連携だけでできるので簡単。
nas.example.com の証明書を使うので、Open WebUIのURLは、
https://nas.example.com:ポート
で接続する。
- NASには、Lets encryptなどの証明書(nas.example.com)が登録されていること。
- NASのダッシュボードに対して、https://nas.example.com みたいなURLで証明書の警告なしで接続ができること
ドメイン証明書を使う場合
*.example.com の証明書を使うので、Open WebUIのURLは、自由に設定できる。
https://hogehoge.example.com:ポート
こっちのほうがかっこいいがNASに対して定期的に証明書の更新をする必要がある。(個別に登録するわけではなく、Reverse Proxy配下のホストの証明書の更新を一度にもれなくできるのでそれでもだいぶ楽)
ただし、自身のドメインをもっていることと、少なくともLAN側に自サイトのDNSが必要(ルーターにDNS機能があるのであればそれでもいい。)
- NASには、Lets encryptなどの証明書(*.example.com)が登録されていること。
- クライアントから、nslookupなどで、hoge.example.comのアドレスの向け先がNASのホスト名もしくはIPアドレスが解決できること
- NASのダッシュボードに対して、https://nas.example.com みたいなURLで証明書の警告なしで接続ができること
ここの条件がそろっていれば、あとは、NASのダッシュボードで設定が可能になる。
DestinationのProtocolをHTTP and WebSocketにするのがミソ。
以下、QNAPのReverse Proxyの設定

Source:
Protocol: HTTPS
Domain name: アクセスしたいOpenWeb UIのFQDN
ホスト名証明書を使う場合は、NASのFQDNか、空欄にする
ドメイン名証明書を使う場合は、NASのIPアドレスあるいはホスト名が解決できる、FQDN (hoge.example.com)
Port number
ホスト名証明書を使う場合は、NASで使っていないポート。
ドメイン名証明書を使う場合は、NASの空きポートを意識する必要はない。
Destination:
Protocol: HTTP and WebSocket
これで設定終了
以下はドメイン名証明書を利用して、複数のOpen WebUIを登録した場合。

動作確認
NGな例(IPアドレスでアクセスした場合)
マイクボタン(Dictate)を押す。

こんなエラーが出て終わり。

OKな例(HTTPS FQDNでアクセスをした場合)
マイクボタン(Dictate)を押すと以下がでるので、Allowをクリック

マイク入力を受け付けてくれる。

音声入力された文字が入る。

ということで、NASのReverse Proxyは便利だと思う。
とあるところで、こんな話をしたが、なかなかこういう情報がないと言われた。理由は単純でハードやOS寄りのインフラの人って、クラウドとかアプリは担当外だから証明書1つもピンとこない。NASのブログや動画って、やらHDDやCPU、メモリがメインで、よくて仮想マシン活用レベル(ただし、virtioドライバやQemu Guest Agentの話は無し)なので、クラウド、アプリまで辿り着かない、たどり着いたとしても、あまり使ったことがないのではと思う。AIなんかのだいぶ手前か。