VPSにOpen WebUIを入れて、ブラウザのチャット画面でローカルLLMを使う
Ollamaは、そのままだと黒い画面(ターミナル)でしか使えません。Open WebUIを入れると、ChatGPTのような ブラウザのチャット画面で、会話の履歴を残しながら使えます。ここでは、Dockerで1つのコンテナにまとめる構成を、 外に公開しないやり方で入れます。GPUの無いVPS(CPUだけ)を前提にしています。
1Dockerを入れる
Ubuntuなら、パッケージで入ります(公式の手順で入れても構いません)。 VPSの契約と接続は、Ollamaのインストール手順の1番と同じです。
sudo apt update && sudo apt install -y docker.io2秘密の鍵を作る
ログイン情報を守るための鍵です。固定して保管しておかないと、コンテナを作り直すたびに全員がログアウトされます。
openssl rand -hex 32出力された文字列を、次の手順の 鍵の文字列 に入れます。
3Open WebUIとOllamaを起動する
Open WebUIの公式が用意している、Ollamaを中に含む1つのコンテナを使います(CPUのみの構成)。 公式の例と違うのは、-p 127.0.0.1:3000:8080 の部分です。画面を、サーバーの中からだけ開けるようにしています。 Dockerが公開したポートは、ファイアウォールを素通りすることがあるためです (解説)。
sudo docker run -d \
-p 127.0.0.1:3000:8080 \
-v ollama:/root/.ollama \
-v open-webui:/app/backend/data \
-e WEBUI_SECRET_KEY=鍵の文字列 \
--name open-webui --restart always \
ghcr.io/open-webui/open-webui:ollama-v の2行は、モデルとチャットの保存先です。 外して実行しないでください。データが失われます。起動に時間がかかるときは、sudo docker logs -f open-webui で、「Application startup complete」と出るまで待ちます。
4手元のPCから開く(SSHトンネル)
手元のPCで、次を実行したままにします。
ssh -N -L 3000:localhost:3000 ユーザー名@サーバーのIPアドレスブラウザで http://localhost:3000 を開きます。最初の画面で「Create Admin Account」から、アカウントを作ります。 最初に登録した人が管理者になり、そのあとは、新規登録が自動で閉じます。
5モデルを取得して、話しかける
コンテナの中のOllamaに、モデルを取得させます。まずは小さいモデルで試してください (選び方はプラン診断)。
sudo docker exec -it open-webui ollama pull llama3.2:3b取得できたら、チャット画面でそのモデルを選んで話しかけます。止めるときはsudo docker stop open-webui、 再び動かすときはsudo docker start open-webuiです。
よくある質問
メモリは、どれくらい余計に要りますか
チャット画面のぶんのメモリが、モデルのぶんに上乗せで要ります。当サイトは実測をしていないので、具体的な数字は示せません。余裕を持たせるなら、モデルが載る最小のプランから1段上を選んでください。
もうOllamaを入れてあるのですが、そのまま使えますか
この手順は、Ollamaを中に含む1つのコンテナを使います。すでに入れたOllamaとモデルは共有されないので、チャット画面側でもう一度モデルを取得します。すでに入れたOllamaを使う構成もありますが、Ollamaを外から届く状態にする必要があり、お勧めしません(公式の注意書きより)。
ほかの人にも使わせたい
SSHトンネルは、サーバーに入れる人しか使えません。複数人で使うなら、HTTPSとパスワード認証を付けたリバースプロキシを前に置く必要があります。この場合は、ポートを開けるので、設定を慎重に確認してください。
ToolkITBoxのAIツール・解説と併用する
姉妹サイトの、この記事と相性のいいページです。
- Local LLM Memory Estimator
モデルファイルとKVキャッシュから、必要なメモリを見積もる — toolkitbox.net
- メモリはどれだけ要るか
モデルファイルとKVキャッシュ(会話の長さで増える分)の考え方 — toolkitbox.net
- LLM API Cost Calculator
APIの月額を見積もり、自前のVPSと比べる材料にする — toolkitbox.net
- 自前のVPSでAIを動かす
必要なメモリの見積もりと、公開してはいけないもの — toolkitbox.net
- LLMをローカルで動かす
Ollama・LM Studio・llama.cppの入れ方とモデルの入手先 — toolkitbox.net
- CIDR Calculator
ファイアウォールの許可レンジを計算する — toolkitbox.net
- Password Generator
サーバー用に強いパスワードをその場で生成 — toolkitbox.net
コマンドはOpen WebUI公式のクイックスタートをもとにしています(ポートの公開範囲だけを変えています)。バージョンアップで変わることがあるため、うまくいかないときは公式もご確認ください。