【備忘録】古いノートPC+Ubuntu環境にOpenWebUIとOpenRouterを導入して無料LLM環境を構築する
家に眠っていた古いノートPCにUbuntuをインストールし、Dockerを用いてOpenWebUIを構築。頭脳としてOpenRouterの無料APIを接続するまでの手順と、発生したトラブルの解決策の備忘録。
1. 構成環境
- ハードウェア: 古いノートPC(スペック不問、GPUなし、メモリ8GB等)
- OS: Ubuntu Linux
- UI環境: OpenWebUI (Dockerコンテナ)
- APIインフラ: OpenRouter (DeepSeek-V3:Free, Qwen2.5-72B:Free 等を利用)
2. 構築手順
① DockerでOpenWebUIの起動
Dockerを用いてOpenWebUIコンテナをデプロイする。起動後は http://localhost:3000 にブラウザでアクセス。
② OpenRouterでAPIキーの取得
Nvidia NIM等で発生する組織制限(後述)を回避するため、OpenRouterを使用。
- OpenRouter( https://openrouter.ai/ )でアカウント作成。
- 「Keys」メニューから新しいAPIキーを発行し、
sk-or-v1-から始まる文字列をコピー。
③ OpenWebUI側の外部接続設定
OpenWebUIの設定画面からOpenRouterのAPIを登録する。
-
左下のユーザーアイコン > 「管理者設定 (Admin Settings)」 を選択。
-
左メニューの 「外部接続 (Connections)」 を選択。
-
OpenAI APIの項目に以下を入力して保存。
-
API URL:
https://openrouter.ai/api/v1 -
API Key: OpenRouterで取得した
sk-or-v1-...のキー
-
API URL:
-
画面上部のモデル選択から
deepseek/deepseek-chat:free等を選択して利用開始。
3. トラブルシューティング(踏んだ罠と対策)
🛑 トラブル1:起動直後にステータスが unhealthy になる
-
事象:
docker psで確認時、OpenWebUIのステータスがunhealthyのままチャット画面が開かない。 - 原因: 古いPCスペックの場合、初期起動時の内部データベース作成や初期化処理に時間がかかっているだけだった。
-
対策: コマンドの再実行や再起動はせず、**「処理が完了するまで何もせず待つ」**ことで自然に
healthyに移行した。
🛑 トラブル2:watch コマンドから元のターミナルに戻れない
-
事象: コンテナの状態を監視するために
watchコマンドを実行したが、終了方法(exit等)が分からずターミナルがロックされた。 - 原因: Linuxにおける標準的な画面監視コマンドの終了方法の誤認。
-
対策:
Ctrl+Cを入力してコマンドを強制終了する。
🛑 トラブル3:Nvidia NIMで「API Access Restricted by your Organization」エラー
- 事象: 当初Nvidia NIMのAPIを利用しようとしたが、「組織(Organization)による制限」が発生しAPIキーの発行がブロックされた。アカウントの再作成やGoogle連携の切り替えでも解消せず。
- 原因: 個人アドレスであってもシステム側に組織アカウント(学校・企業等)として誤認識されると、ビジネス向けのAPIアクセス権限制限に引っかかる仕様。
- 対策: Nvidiaの使用を諦め、個人利用に制限のない 「OpenRouter」へ接続先を変更することで即座に回避。
4. この構成(セミ・ローカル)のメリット
古いPCでOllama等を用いた「完全ローカルLLM」を動かそうとすると、マシンスペックがボトルネックになり実用的な速度が出ない。
今回の**「UIはローカル(Ubuntu上のOpenWebUI)、推論処理はクラウド(OpenRouterの無料枠)」**という構成にすることで、以下のメリットを得られた。
- ローカルPCへの負荷がほぼゼロ: 推論処理がクラウド側で行われるため、ファンが回ることもなく低スペックPCでもサクサク動作する。
-
超大型モデルが利用可能: ローカルでは絶対に動かない
DeepSeek-V3やQwen 2.5 (72B)などの最先端モデルが無料枠で利用できる。