ドキュメントサイトのデプロイメント
nibiru-framework.comの本番デプロイメントは、jwilder/nginx-proxyと独自のOllamaを使用してyour Ollama instanceで行います。
このページでは、ドキュメントサイトがプロダクションでデプロイされる方法について説明します。セットアップは、jwilder/nginx-proxy を使用して自動的に Docker コンテナのルーティングを行うこと、letsencrypt-nginx-proxy-companion を使用して HTTPS を提供すること、および あなたの Ollama at your-ollama-host.example を使用して Oracle バックエンドを提供することを含んでいます。有料の LLM API キーは不要です。
Internet │ ▼ ┌──────────────────────┐ │ jwilder/nginx-proxy │ ← reverse proxy on :80 / :443 │ (network: nginx-proxy)│ terminates TLS └──────────┬───────────┘ │ http://nibiru-docs:4321 ▼ ┌──────────────────────┐ ┌──────────────────────┐ │ nibiru-docs │ ──────▶ │ your-ollama-host.example │ │ Astro Node SSR :4321 │ HTTPS │ Ollama (5× GPU) │ │ Oracle endpoint │ │ qwen2.5-coder:14b │ └──────────────────────┘ │ nomic-embed-text │ └──────────────────────┘ホストの前提条件
Section titled “ホストの前提条件”# 1) Create the shared external network (one time)docker network create nginx-proxy
# 2) Run nginx-proxy + acme-companion (one time)# See https://github.com/nginx-proxy/nginx-proxy for the canonical compose.
# 3) Pull the Oracle's models on your Ollama instance (one time)curl https://your-ollama-host.example/api/pull -d '{"name":"qwen2.5-coder:14b"}'curl https://your-ollama-host.example/api/pull -d '{"name":"nomic-embed-text"}'docs/ 内のファイル
Section titled “docs/ 内のファイル”| ファイル | 機能 |
|---|---|
Dockerfile | 多段階ビルド: your Ollama instance に対して Oracle インデックスを構築し、Astro を構築し、開発依存関係を削減します。 |
docker-compose.yml | 生産 — VIRTUAL_HOST=nibiru-framework.com、nginx-proxy ネットワークに参加しています。 |
docker-compose.local.yml | ローカルテストオーバーライド — 4321:4321 を公開し、nginx-proxy 環境変数を削除します。 |
.dockerignore | node_modules、.git などの構築コンテキストから除外します。 |
.env.example | テンプレート — your Ollama instance の Ollama をデフォルトにし、API キーは不要です。 |
cd docscp .env.example .env# defaults are fine for production unless you want to override the Ollama URL or models
docker compose up -d --build最初のビルドでは、build-oracle-index.mjs がドキュメントを Ollama に埋め込みます。その後の再構築は高速です — Docker が依存関係層をキャッシュし、変更されたチャンクのみを再埋め込みします。
約30秒後、jwilder/nginx-proxy が新しいコンテナを検出し、Let’s Encrypt の証明書をリクエストし、https://nibiru-framework.com → :4321 へのルーティングを行います。
curl -s https://nibiru-framework.com/api/oracle | jq# {# "status": "ok",# "llm": { "provider": "ollama", "model": "qwen2.5-coder:14b", … },# "embed": { "provider": "ollama", "model": "nomic-embed-text", … },# "index": { "present": true, "chunks": 177, … }# }ブラウザでサイトを開き、アマバー色のOracleランチャーをクリックし、質問してください。
ドキュメント変更後の更新
Section titled “ドキュメント変更後の更新”git pulldocker compose up -d --buildビルドは最新のコンテンツに対してOracleインデックスを再実行します;新しいコンテナが:4321で開始されます;jwilderはアップストリームをスワップし、古いコンテナを停止します — 任意のダウンタイムはありません。
| 変数 | デフォルト | 使用場所 | 機能 |
|---|---|---|---|
LLM_PROVIDER | ollama | 実行時 | ollama(デフォルト)または anthropic。 |
OLLAMA_BASE_URL | https://your-ollama-host.example | ビルド + 実行時 | Ollama に到達するための場所。 |
OLLAMA_CHAT_MODEL | qwen2.5-coder:14b | 実行時 | チャット完了モデル。 |
OLLAMA_EMBED_MODEL | nomic-embed-text | ビルド + 実行時 | 埋め込みモデル。 |
EMBED_PROVIDER | ollama | ビルド + 実行時 | ollama または openai。 |
ANTHROPIC_API_KEY | — | 実行時 | LLM_PROVIDER=anthropic の場合のみ使用されます。 |
ANTHROPIC_MODEL | claude-haiku-4-5-20251001 | 実行時 | Claude モデルを上書きします。 |
OPENAI_API_KEY | — | ビルド + 実行時 | EMBED_PROVIDER=openai の場合のみ使用されます。 |
ORACLE_TOP_K | 6 | 実行時 | Oracle 応答ごとに注入されるチャンク数。 |
LETSENCRYPT_EMAIL | stephan.kasdorf@bittomine.com | letsencrypt | Let’s Encrypt が期限切れ通知を送る場所。 |
VIRTUAL_HOST | nibiru-framework.com,www.nibiru-framework.com | nginx-proxy | compose で設定します。 |
トラブルシューティング
Section titled “トラブルシューティング”502 Bad Gateway. 上流コンテナが起動に失敗しました。docker logs nibiru-docs を確認してください — おそらく dist/server/entry.mjs にビルドアーティファクトがない可能性があります。
証明書が発行されていません。 Let’s Encrypt は激しくレート制限を行っています。原因については docker logs letsencrypt-nginx-proxy-companion を確認してください。
Oracleは引用せずに回答します。 エンベディングインデックスが空です。nomic-embed-textがOllamaで取得されていないか、ビルドがyour Ollama instanceに到達できなかった可能性があります。モデルを再度取得してください:```bash
curl https://your-ollama-host.example/api/pull -d ’{“name”:“nomic-embed-text”}’
docker compose up -d —build
**Oracle は「Oracle が回答することができませんでした」を返しました。** チャットモデルが取得されていることを確認してください:```bashcurl https://your-ollama-host.example/api/tags | jq '.models[].name'Claudeにフォールバックしたい場合 LLM_PROVIDER=anthropic と ANTHROPIC_API_KEY を .env ファイルに設定し、その後 docker compose up -d を実行します。
リソース使用率
Section titled “リソース使用率”| 待機中 | Oracle ロード下 | |
|---|---|---|
| RAM | 約 120 MB | 約 200 MB |
| CPU | < 0.5% | 約 5% |
| ネットワーク | 最小限 | 問題ごとに 1 回の HTTPS 待ち時間 |
| ディスク | 約 60 MB の画像 + 約 5 MB のインデックス | コーパスエクスポートに加えて |
1 GB / 1 vCPU のドロップレットは、ドキュメントサイトを快適に処理しつつ他のサービスも一緒に扱います。重い作業(LLM 推論)は、ドキュメントコンテナではなく、あなたの GPU クラスターで行われます。