SSD Nodes Learn Hosting plans →
ガイド Matt Connor著者 Matt Connor

Claudeはセルフホストできる?正直な答えと代替策

Claudeはモデルの重みが非公開のため、手元のサーバーでは実行できません。代わりに、Ollamaのオープンモデル、LiteLLMのゲートウェイ、VPS上のClaude Codeを使う方法を解説します。

Claude をセルフホストできますか? できません。その理由を説明します

Claude はセルフホストできません。Anthropic はモデルの重みを公開していないため、ダウンロードするファイルも、実行するコンテナも、自分のハードウェアから提供できるライセンスもありません。Claude へのすべてのリクエストは、Anthropic の API、または Amazon Bedrock、Google Vertex AI、Microsoft Foundry などのホスト型パートナーに送信されます。所有するマシンで実行できないのは、設定の問題ではありません。Anthropic の外部には、その成果物自体が存在しません。

これが簡潔な答えです。より詳しく言うと、この質問をする人の多くは、実際には重みを求めていません。求めているのは、管理下のサーバーで実現できる次の3つのいずれかです。ローカルで動作する十分な性能のモデル、自分の API キーを保持して利用料金に上限を設定するゲートウェイ、またはノート PC ではなく自分のマシン上で動作するコーディングエージェントです。このガイドでは、コマンドを含めて3つすべてを説明します。

「self-hosted Claude」が通常意味するもの

「self hosted Claude」で検索する人の目的は、いくつかに分かれます。目的によって、必要な対策も異なります。

プライバシーを求める人がいます。プロンプトをネットワーク外へ送信したくないという目的です。この場合に必要なのは、ローカルで動作するオープンウェイトモデルだけです。Claude へのリクエストは、定義上すべて Anthropic へのリクエストになるためです。

コストを管理したい人もいます。エージェントが制御不能になり、クレジットを大量に消費することを懸念しています。この場合はゲートウェイで解決できます。Claude と連携できるため、モデルの品質も維持できます。

ノートパソコンへの依存を減らしたい人もいます。蓋を閉じている間もエージェントを動作させたいという目的です。この場合は VPS で解決できます。Claude Code は VPS 上で問題なく動作します。

「self hosted OpenRouter」を求める人もいます。これもゲートウェイであり、通常は LiteLLM が選択肢になります。

自分がどの目的に当てはまるかを整理してください。目的によって、適切な構成は異なります。

Ollama でオープンモデルをセルフホストする

プロンプトをサーバーの外部に一切出せない要件であれば、オープンウェイトモデルを実行します。現在、レンタルサーバーで実用になるモデルファミリーは、Llama、Qwen、Mistral、Gemma、DeepSeek です。いずれもダウンロードして実行できるウェイトを公開しています。

Ollama は導入が最も簡単です。インストールスクリプトは 1 行で、Ubuntu 上に systemd サービスを設定します。

curl -fsSL https://ollama.com/install.sh | sh
systemctl status ollama

systemctl status ollama は active (running) を出力するはずです。次にモデルを取得して、モデルと対話します。

ollama pull qwen3:8b
ollama run qwen3:8b "Summarise what a reverse proxy does in two sentences."

最初の pull では数 GB のデータをダウンロードするため、何かに回答できるようになる前に、モデル全体を RAM または GPU メモリに収める必要があります。量子化モデルの大まかな目安は、80 億パラメーターのモデルで空き容量が約 6 GB、140 億パラメーターのモデルで約 10 GB です。700 億パラメーターのモデルでは、一般的な VPS プランの多くが搭載する容量を超えるメモリが必要です。メモリが不足すると、プロセスはカーネルによって強制終了され、Error: llama runner process has terminated が表示されます。dmesg にはメモリ不足を示す行も記録されます。モデルを疑う前に free -h を確認してください。同じメモリ容量は、長いプロンプトをモデルが実際に読み取る量も決めます。Ollama は、標準では控えめに設定されたコンテキストウィンドウを超える部分を静かに切り捨てるため、長い文書の要約が途中までしか返らない場合は、まず num_ctx を増やし、KV キャッシュの容量を調整することを確認します。

Ollama は 127.0.0.1:11434 で HTTP API も提供します。これにより、単なるチャット用のツールではなく、他のソフトウェアから利用できます。

curl http://127.0.0.1:11434/api/generate -d '{"model":"qwen3:8b","prompt":"ping","stream":false}'

しばらく利用しなかった後の最初のリクエストには 30 秒かかる一方、次のリクエストがすぐに返る場合でも、故障ではありません。Ollama は 5 分間アイドル状態が続くとモデルをアンロードします。keep_alive でモデルを常駐させると、再ロードによる遅延をなくせます。

このポートは localhost にバインドしたままにしてください。パブリック IP で Ollama のポートを開放すると、見つけた人に GPU を無償で使われます。systemd unit、GPU 検出、リバースプロキシの前段配置を含む完全な構成は、VPS で Ollama を実行するガイドで説明しています。同時に複数のユーザーへ提供する場合は、先に Ollama と vLLM の比較を読んでください。Ollama の単一ストリーム設計は、ハードウェアの性能が限界に達するよりかなり前にボトルネックになります。

性能差を正しく認識してください。 中程度の VPS で優れたオープンモデルを実行すれば、要約、分類、下書き作成、単純な抽出には十分役立ちます。しかし、長い複数段階の推論、大規模なコードベース、エージェントによるツール利用では、フロンティアのホスト型モデルには及びません。プロンプトの調整だけでこの差を埋めることもできません。ローカルモデルは得意な作業に使い、難しい作業にはホスト型モデルを利用してください。

LiteLLM で独自のゲートウェイを運用する

これは、検索されている「セルフホスト型の OpenRouter」です。ゲートウェイは、アプリケーションと各モデルプロバイダーの間に置きます。アプリケーションでは 1 つのキーだけを保持し、自分のサーバーを接続先にします。実際のプロバイダーキーは、そのサーバー上だけに保存します。キーごとの支出上限を設定し、アプリケーションごとに異なるモデルへルーティングし、すべてのリクエストを 1 か所に記録できます。

LiteLLM が一般的に選ばれるのは、OpenAI 互換 API に対応し、同じエンドポイントの背後で Anthropic、Ollama、その他の多くのプロバイダーへプロキシできるためです。設定ファイルを使い、Docker で実行します。

model_list:
  - model_name: claude
    litellm_params:
      model: anthropic/claude-sonnet-5
      api_key: os.environ/ANTHROPIC_API_KEY
  - model_name: local
    litellm_params:
      model: ollama/qwen3:8b
      api_base: http://127.0.0.1:11434

これを litellm_config.yaml として保存し、プロキシを起動します。プロキシはポート 4000 で待ち受けます。

docker run -v $(pwd)/litellm_config.yaml:/app/config.yaml \
  -e ANTHROPIC_API_KEY=$ANTHROPIC_API_KEY \
  -e LITELLM_MASTER_KEY=sk-1234 \
  -p 4000:4000 docker.litellm.ai/berriai/litellm:latest \
  --config /app/config.yaml

LITELLM_MASTER_KEY は管理者認証情報です。root パスワードと同じように扱い、例にある値をそのまま使わないでください。ホスト型 API を呼び出す場合と同じ方法で、プロキシを呼び出します。

curl http://localhost:4000/v1/chat/completions \
  -H 'Authorization: Bearer sk-1234' \
  -H 'Content-Type: application/json' \
  -d '{"model": "claude","messages": [{"role": "user","content": "Say hello in five words."}]}'

正常な応答は、choices 配列を含む通常の JSON です。401 は認証の失敗を示します。この構成でよくある原因は、マスターキーと一致しない Authorization ヘッダーです。LiteLLM は無効な仮想キーでもこれを返します。また、プロバイダーが拒否するプロバイダーキー(不正な ANTHROPIC_API_KEY など)も認証に失敗し、エラーには <Provider>Exception の形式でプロバイダー名が含まれます。モデル名を示す 400 は、リクエストの model が設定ファイル内のどの model_name とも一致していないことを示す場合が多くあります。リクエストがモデルのコンテキストウィンドウに対して長すぎる場合、LiteLLM は 400 も返します。そのため、設定を編集する前にエラーメッセージを確認してください。

Anthropic を直接呼び出すのではなく、これを構築する理由は支出上限です。アプリケーションごとに専用の仮想キーを発行し、それぞれに個別の予算を設定します。

curl 'http://0.0.0.0:4000/key/generate' \
--header 'Authorization: Bearer sk-1234' \
--header 'Content-Type: application/json' \
--data-raw '{"models": ["claude"], "max_budget": 100}'

仮想キーと予算を使うには、プロキシの背後に Postgres データベースが必要です。上記の docker run にはデータベースがないため、まず -e DATABASE_URL=postgresql://user:password@host:5432/litellm を追加します。データベースがない場合、この呼び出しは No connected db. で失敗します。

このキーでは 100 ドルまで支出でき、1 つのモデルだけにアクセスできます。それ以外は何もできません。エージェントが午前 3 時に誤動作しても、影響範囲はアカウント全体ではなく 1 つのキーに限定されます。このパターンと、その周辺の監視については、VPS 上でエージェントのコストを管理する方法で説明しています。そもそもトークン単位で支払うべきか判断中であれば、API とサブスクリプションのコスト比較で計算方法を確認できます。

ゲートウェイが行わないことにも注意してください。Claude をローカルで実行するわけではありません。また、プロンプトを Anthropic から隠すこともできません。リクエストは引き続き、プロバイダーに送るためにサーバーの外部へ出ます。得られるのは、キー、支出、ルーティング、ログを管理する機能です。

自分の VPS で Claude Code を実行する

3 つ目の願いは、最も簡単に実現できます。Claude Code はクライアントです。単一のネイティブバイナリとしてインストールされ、HTTPS 経由で API と通信します。自分で管理するサーバーに配置すると、ノート PC を閉じた後もエージェントが動作し続けます。また、エージェントの影響範囲をメインマシンではなく、再構築できる 1 台のサーバーに限定できます。

npm install -g @anthropic-ai/claude-code
claude --version

npm でインストールする場合は、Node.js 22 以降が必要です。Anthropic が推奨するネイティブインストーラー curl -fsSL https://claude.ai/install.sh | bash では、Node.js は必要ありません。どちらの方法でも、インストールされる claude バイナリは Node 上では動作しません。Anthropic は最小要件として 4 GB の RAM を挙げているため、VPS もそれに合わせたサイズにします。

長時間実行するジョブが SSH 接続の切断で終了しないように、tmux 内で実行してください。この構成とセッション管理については、tmux で VPS 上の Claude Code を実行するで説明しています。エージェント専用の非特権ユーザーを作成してください。重要なデータへの書き込み権限を与える前に、サーバー上で Claude Code を実行する際の安全規則を読んでください。

これはエージェントのセルフホスティングであり、モデルのセルフホスティングではありません。この点は混同されやすいため、正確に区別する必要があります。管理できるのは、プロセス、ファイルシステム、ネットワークの外向き通信、ログです。推論は引き続き Anthropic が管理します。

実際に各選択肢にかかる費用

価格は変動するため、ここでは見積額ではなく、おおよその傾向として扱ってください。2026 年 10 月 12 日時点で、Claude Sonnet 5.5 は入力 100 万トークンあたり $2、出力 100 万トークンあたり $10 です。Claude Opus 5.5 はそれぞれ $4 と $20 です。上記の gateway 設定で使用しているモデルである Sonnet 5 は、現在は legacy model です。それでも同じ $2 と $10 で利用でき、Opus 5 は現在も $5 と $25 です。ローカルモデルはトークン単位の料金がかかりません。その代わり、使用しているかどうかに関係なく稼働するサーバーの月額費用がかかります。

損益分岐点は、一般に考えられているより低い位置にあります。有用な open model を実行できるだけのメモリを備えた VPS には、毎月まとまった費用がかかります。しかも、ほとんどの時間はアイドル状態です。利用が断続的なら、通常はホスト型 API のほうが安価です。利用が常時発生する場合や、データをネットワーク外に出せない場合は、どちらの点でもローカルモデルが有利です。

多くのチームが最終的に採用するのは、正直なところ混合構成です。高ボリュームで難易度の低い処理には、open model をローカルで実行します。難しいリクエストは、ホスト型の最先端モデルへルーティングします。両方の前段に gateway を置けば、アプリケーションはどちらのモデルかを意識する必要がありません。また、アプリケーションコードを変更せずに両者の振り分け基準を変更できます。この構成が「self hosted Claude」を実用化した形です。文字どおりの意味では存在しないものとは異なり、こちらは実際に構築できます。agent stack 全体も自分で運用したい場合は、self-hosted AI agents の概要で利用可能な選択肢を確認できます。

FAQ

Claude のモデル重みをダウンロードしてローカルで実行できますか?

いいえ。Anthropic は、どの Claude モデルについても重みを公開したことがありません。セルフホスティングを許可するライセンスもありません。オンラインでダウンロード可能な「Claude model」として宣伝されているものは、誤解を招く名前を付けた別のモデルか、API を呼び出すラッパーのいずれかです。API key が必要なら、それはローカル実行ではありません。

Claude に最も近いオープンモデルは何ですか?

完全に一致するモデルはありません。主流モデルも数か月ごとに変わります。テストする価値があるオープンウェイトのファミリーは、Llama、Qwen、Mistral、Gemma、DeepSeek です。要約、分類、単純なコード編集では、8 から 14 billion parameters の優れたオープンモデルが実用になります。長い複数ステップの推論やエージェントによるツール利用では、ホスト型の最先端モデルとの差は依然として大きいままです。リーダーボードを盲信せず、自分のプロンプトでテストしてください。

LiteLLM はセルフホスト型の OpenRouter ですか?

ルーティングと key 管理の機能に限れば、実質的にはそうです。LiteLLM はサーバー上で動作し、OpenAI compatible なエンドポイントを1つ提供して、Anthropic、Ollama、その他の大半のプロバイダーへプロキシします。Postgres データベースを接続すると、key ごとの支出上限を設定できます。モデルルーティングとログを確認する場所も一元化できます。ただし、ローカル推論が提供されるわけではありません。Claude へのリクエストは引き続き Anthropic へ送信されます。

自分のサーバーで Claude Code を実行すれば、コードを非公開にできますか?

いいえ。Claude Code は、プロセスがどこで実行されているかにかかわらず、読み取ったファイルの内容を Anthropic API に送信します。VPS で得られるのはエージェントの隔離であり、内容のプライバシーではありません。専用の非特権ユーザーを割り当て、認証情報や無関係なリポジトリからアクセスできないようにしてください。読み取り可能なものはすべて、サーバー外部へ送信される内容として扱ってください。