コンテンツへスキップ

機械翻訳です。正式な情報源は英語版であり、ネイティブによる確認は未完了です。

はじめに

インストールとセルフホスト

単一の Olivares AI バイナリの本番インストール — デフォルトクレデンシャルなし、TLS デフォルトオン、/readyz と /livez プローブ、SQLite または最小権限の Postgres

最終更新:

Olivares AI は Web コンソールが組み込まれた1つの静的バイナリとして出荷されます。コントロールプレーン — お客様のインフラストラクチャ上の AI エージェントを観測、ガバナンス、監査する部分 — はお客様のペリメーター内で実行され、エアギャップが可能です。このページでは本番向けのインストールをカバーします: 1ホスト、セキュアなデフォルト、ヘルスプローブ、マルチテナントデプロイメントに重要なストア選択。

まず見て回りたいだけなら、クイックスタートが約5分で合成デモエステートを起動します。このページは実際の姿勢です。

バイナリの取得

ここにコピーする公開ダウンロード URL はありません。olivares バイナリの取得方法は2つです:

  • 署名済みリリースアーティファクト — 実行前に検証してください。署名とプロヴナンスチェーンについてはリリースの検証を参照してください。
  • ソースからビルド — ストアは純粋 Go の SQLite であるため、C ツールチェーンは不要です。task build で Web UI とファーストパーティコネクターが組み込まれた ./bin/olivares が生成されます。olivares version でビルド内容を確認できます。

いずれの方法でも、単一ファイルが得られます。インストールし、root ではなく専用のサービスユーザーを作成して実行してください。

セキュアなデフォルト

デフォルトは、フラグに触れる前に新規インストールが安全になるように選択されています。

デフォルト動作
クレデンシャルなし。初回起動時にワンタイム、シングルユースのセットアップトークン(プレフィックス olst_)を出力し、最初の管理者を作成します。
TLSオン。--tls-cert/--tls-key なしの場合、エンジンはデータディレクトリに自己署名証明書を生成し、fingerprint_sha256 をログに記録します。--insecure(プレーンテキスト)は localhost 開発専用です。
バインドループバック。--listen のデフォルトは 127.0.0.1:8443、gRPC は 127.0.0.1:8444 です。意図的に、お客様自身のイングレスと TLS の背後で公開してください。

最小限の初回起動:

olivares serve \
  --listen 127.0.0.1:8443 \
  --grpc-listen 127.0.0.1:8444 \
  --data-dir /var/lib/olivares

データディレクトリにはストア、監査署名鍵、TLS マテリアルが保存されます。バックアップを取り、制限的なパーミッションで保護してください。

ワンタイムセットアップトークンの取得

新規インストールにはデフォルトクレデンシャルがありません。ユーザーが存在しない初回起動時、エンジンはシングルユースのセットアップトークンを生成し、stdout のみに出力します — ログには出力されません:

=== FIRST-BOOT SETUP ===
No users exist yet. Create the first administrator:
  POST /v1/setup  {"token":"olst_…","email":"you@example.com","password":"..."}
This token is shown ONCE and is single-use.
========================

トークンのハッシュのみが保存されるため、見逃したトークンは復元できず、再起動時に再出力されません。ユーザーがまだいないまったくの新規インストールでは、データディレクトリから保存されたトークンを削除して再起動すると新しいトークンが生成されます。この復元はユーザーが存在しない間のみ機能するため、設定済みのインストールを乗っ取ることはできません。

最初の管理者を作成すると、セットアップエンドポイントは永久に閉じられます。

ヘルスプローブ

HTTP リスナーは、意図的に異なるセマンティクスを持つ2つのプローブを公開します。対応する Kubernetes プローブに正しく接続してください — 2つを混同するとリスタートループや古いルーティングが発生します。

/livez はライブネスです。依存関係チェックは実行しません: プロセスが応答できれば、生存しています。依存関係の障害がライブネスリスタートをトリガーしてはなりません。

curl -ks https://127.0.0.1:8443/livez
# {"status":"ok"}

/readyz はレディネスであり、ロードバランサーがドレインすべきアベイラビリティシグナルです。2つのケースで 503 を返し、ログ用にボディで区別されます:

  • ストア到達不能{"status":"unavailable","store":"down"}。ストアの ping は短いタイムアウトで実行されるため、固まったバックエンドはハングではなくインスタンスをドレインします。
  • アクティブライターではない{"status":"standby","store":"up","leader":false}。アクティブ-パッシブクラスターでは、スタンバイはここで 503 を報告し、Service がルーティングを停止します。リスタートせずに(それは /livez の仕事です — ホットスタンバイは引き継ぐために起動していなければなりません)。リーダーがダウンすると、スタンバイがリーダーシップを取得し、これが 200 に切り替わり、トラフィックは自動的に新しいリーダーに従います。

エンジンが準備完了すると 200 を返します:

{"status":"ok","store":"up","leader":true,"setup_required":false}

setup_required はオブザーバビリティのために報告されますが、レディネスを失敗させません — 新しく起動したエンジンはセットアップされる準備ができています。シングルノードストアではライターは常にアクティブであるため、/readyz は単にストアの到達可能性を追跡します。

ストアの選択

ストアは --engine で選択します。トポロジーに基づいて選択し、好みではなく。

SQLite(デフォルト)

組み込みの純粋 Go SQLite ストアは外部依存がなく、シングルノード、ラボ、小規模エステート、またはエアギャップインストールに適しています。すべての状態がデータディレクトリに保存されます。

Postgres(マルチテナント)

マルチホストまたはマルチテナントデプロイメントには Postgres を使用してください。スーパーユーザーまたは BYPASSRLS を持つロールとして接続しないでください。 テナント分離は FORCE ROW LEVEL SECURITY によって施行されており、Postgres はそのようなロールのすべての行レベルセキュリティを暗黙的にバイパスします — テナント間にはアプリケーションレイヤーの述語のみが残ります。エンジンは、--allow-privileged-db-role を明示的に渡さない限り、特権ロールに対して起動を拒否します(シングルテナントまたは開発専用)。

代わりに、専用の最小権限ロールをプロビジョニングしてください — NOSUPERUSER NOBYPASSRLS NOCREATEROLE NOCREATEDB。自身のデータベースを所有するため、スキーママイグレーションを適用できます。FORCE ROW LEVEL SECURITY はテーブルオーナーにもテナントポリシーを適用するため、所有しているがバイパスしないロールは完全に分離されたままです。

olivares serve --engine postgres \
  --dsn "postgres://olivares_app:$DB_PASSWORD@db:5432/olivares?sslmode=verify-full" \
  --data-dir /var/lib/olivares

sslmode=verify-full と強力な SCRAM パスワードを使用してください。真にクロステナントの System 読み取り(組織リスト、マルチテナントチェックポイントカバレッジ)には別のロールが必要です: NOSUPERUSER BYPASSRLS — 最小権限ですがテナント間の読み取りが可能 — をプロビジョニングし、--admin-dsn で指定してください。シングルテナントデプロイメントでは省略すると、それらの読み取りは単に RLS 制限されます。

完了と判断する前に

2つのことが、インシデント後にエビデンスが残るかどうかを決定します:

  • 監査署名鍵をオフボックスでバックアップしてください。 追記専用の監査台帳に署名します。失われた場合、台帳を再検証できなくなります。エンジンは初回起動時に警告します — 強制的なエスクローはありません。
  • 台帳の公開鍵のオフボックスコピーを保持してください。 そのオフホストコピーが、ホスト侵害後の監査検証を耐性あるものにします。

その後、データディレクトリの実際のバックアップをスケジュールしてください。

何がどこで実行されるか

配置するのはコントロールプレーンのみです — 選択すればエアギャップも可能です。コレクター(データプレーン)は常にお客様のインフラストラクチャで実行されます。率直に述べるべき注意点が1つ: Olivares は Claude の使用をガバナンスし監査しますが、Claude の推論自体はセルフホストではありません — Anthropic の API(直接、または Bedrock、Vertex、Foundry 経由)に到達します。真にセルフホストされたモデルのみがオフラインで実行されます。完全な境界については正直さと制限事項ページを参照してください。

次のステップ

ドキュメント検索