コンテンツにスキップ

Olivares AI をセルフホストする

デプロイ用パッケージは Business チャネルで提供されます。ここでは公開状況は未検証です。ローカルチャートを使う前に、チャネルの手順でパッケージと発行者を検証してください。マニフェストの例では Business が提供する business-install.yaml を使います。エアギャップ環境へのインストールには Enterprise が必要です。

Helm, Kubernetes operators, Terraform, appliance and FIPS/STIG images are Business deployment artifacts. The source paths below are in the Business distribution. Air-gapped installation requires Enterprise.

次のリリースは 0.4 で、GitHub ではまだ公開されていません。以下のコマンドは予定されている成果物を示します。公開まではソースからビルドし、公開後も使用前に各成果物を検証してください。観測した公開状況は docs/releases/0.4-install-surfaces.json に記録されています。

Olivares AI は セルフホスト・ファースト です。製品全体が Web UI を埋め込んだ 1 つの静的バイナリであるため、最も単純なデプロイは単一ファイルで済みます。マルチノードや 本番向けには Compose や Kubernetes の経路も用意されています。どの経路も同じセキュアな デフォルト設定 — デフォルト認証情報なし、ワンタイムのセットアップトークン、TLS をデフォルトで 有効化 — を共有します。必須のテレメトリはなく、デフォルトではコントロールプレーンからのエグレス もありません。あなたの境界を越えるのは、あなたがそのように設定したものだけです。具体的には、 あなたのモデル API への呼び出し、接続した SIEM/Webhook 出力、用意した場合の外部埋め込み プロバイダーです。

このガイドはデプロイの 意思決定ページ です — 選択肢とそのセキュアなデフォルト設定を 一目で把握できます。各シナリオの手順を追ったインストールについては、getting-started チュートリアルがすべての経路をエンドツーエンドで解説しています: 単一ノード (systemd) · Docker Compose · Kubernetes/Helm · air-gapped (エアギャップ)。まず成果物を暗号的に 検証するには ダウンロードしたものを検証する を、 ネットワーク非接続のサイトについては エアギャップ環境でインストールする を参照してください。

NATS イベント配信: Core NATS ブリッジと NATS JetStream には Business Identity & Scale が必要です。Community はプロセス内でイベントを配信します。

セキュアなデフォルト設定 (すべての経路)

Section titled “セキュアなデフォルト設定 (すべての経路)”
デフォルト 動作
認証情報 なし。初回起動時に ワンタイムかつ単一利用のセットアップトークン (olst_…) を表示する。これを使って最初の管理者を作成する。
TLS デフォルトで有効。--insecure (平文) は localhost での開発専用。
バインド デフォルトですべてのインターフェース(:8443、:8444)。これはサーバーです。このホストだけに制限するには --listen 127.0.0.1:8443 --grpc-listen 127.0.0.1:8444 を渡します。
ライセンス オープン(AGPL)バイナリでは、ライセンスは オフライン で検証され(Ed25519)、証明(attestation)にのみ用いられる。オープン製品をゲートしたり劣化させたりすることは決してなく、この点は変わらない。Business は、Regulated Operations、AI Runtime Security、Compliance Packs、Identity & Scale を 1 つのサブスクリプションに含みます。お客様は各ファミリーを有効または無効にできます。Business と Enterprise はバイナリとして提供され、有料版のソースコードは非公開のままです。
テレメトリ送信 オフ。エンジンは起動時に必須の外向き通信を一切行わない。

1 つの静的成果物 (純 Go の SQLite ストア、つまり C ツールチェーン不要) をビルドして実行します:

ターミナルウィンドウ
task build # compiles ./bin/olivares with the web embedded
./bin/olivares serve \
--listen 127.0.0.1:8443 \
--grpc-listen 127.0.0.1:8444 \
--data-dir /var/lib/olivares

初回起動時、エンジンはセットアップバナーを表示します:

=== FIRST-BOOT SETUP ===
No accounts exist yet. Open the console and create the first administrator
with this one-time token — setup also creates your first organization and
makes that administrator its owner:
Console: https://127.0.0.1:8443
Token: olst_…
The console serves HTTPS with a self-signed certificate on first boot — your
browser will warn once; that is expected.
Passkeys will not work at that address:
a browser will not run a passkey ceremony at an IP address. Reach the
console by a host name.
On this machine the same console also answers at
https://localhost:8443
and at that address the relying party is derived from the name, which the
verifier accepts.
The token is shown ONCE and is
single-use. Prefer the API? POST /v1/setup {"token":"…","email":"…",
"password":"…"} — add "organization":"…" to name it (default: "Default
Organization"). The reply carries the new organization's tenant_id.
========================

最初の管理者を作成し、ログインします:

ターミナルウィンドウ
curl --cacert /var/lib/olivares/tls.crt -fsS -X POST https://localhost:8443/v1/setup \
-H 'Content-Type: application/json' \
-d '{"token":"<olst_ token>","email":"you@example.com","password":"<strong-password>"}'
curl --cacert /var/lib/olivares/tls.crt -fsS -X POST https://localhost:8443/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","password":"<strong-password>"}'

データディレクトリには SQLite データベース、監査署名鍵、TLS マテリアルが格納されます。 バックアップを取り、保護してください。

カスタムデータディレクトリ (layout: custom)

Section titled “カスタムデータディレクトリ (layout: custom)”

既定のネイティブレイアウトは /var/lib/olivares です。署名済みサービスアダプタ (install.sh --data-dir、scripts/install-service.sh)は 形状 により カスタム データディレクトリを認めます。許可リストではありません。所有 マニフェストは "layout": "custom" を記録します(CHANGELOG.md [26.9.0] Added、INSTALL.md)。

SDD 04 §6: 設定可能な各フィールドは owner、schema、accepted sources、validator を 宣言します。ここでの専用ディレクトリの owner はアダプタ、親の owner はオペレータです。 次はアダプタ自身の拒否文字列です(scripts/install-service.sh):

Condition What the adapter prints and exits 1
Path is not /*/* (a top-level directory) custom data directory must be a dedicated directory at least two levels deep (for example /srv/olivares), not a top-level directory: $data_dir
The data directory would contain the binary, config or unit custom data directory $data_dir must not contain the installed path $path
Any path component is a symbolic link path component is a symbolic link ($prefix -> …); pass the resolved path instead of provisioning through a link: $1
Parent of a new custom directory does not exist parent of the custom data directory does not exist; create it with the intended owner first: $(dirname -- "$data_target")
Existing system directory mode is not 0700 or 0750 existing system data directory mode is $data_mode; require 0700 or 0750
Path is under /dev, /proc or /sys data directory $data_dir is under an API file system (/dev, /proc, /sys): choose a real directory

install-agentops.sh は OLIVARES_DATA_DIR に同じ 2 階層規則を使います: OLIVARES_DATA_DIR must name a dedicated directory at least two levels deep (for example /srv/olivares), not a top-level directory。OLIVARES_DATA_DIR と明示選択された OLIVARES_WORKSPACE_DIR を尊重します。

ユニットはディレクトリを ReadWritePaths=<data-dir> として描画します。ProtectHome=false と PrivateTmp=false を設定しているので、/home、/root、/run/user、/tmp、/var/tmp 配下のディレクトリにも追加のマウントは要りません。インストーラーは、/tmp と /var/tmp が 起動時やタイマーで消去されうることを警告します。

olivares uninstall は、索引付きパスのユニットがそのディレクトリでエンジンを実行する とき、または preserve が既にサービス設定の横にアンインストール証人を残しているときに 限り、そのカスタムディレクトリを認めます。記録された AgentOps レイアウトは olivares doctor で診断します — トラブルシューティング。

パッケージインストールの既定は /var/lib/olivares のままです。 パッケージからインストール。macOS は Homebrew でインストール。

選択肢 2 — Docker Compose (単一ノード、SQLite)

Section titled “選択肢 2 — Docker Compose (単一ノード、SQLite)”

リポジトリには Compose スタックが同梱されています:

ターミナルウィンドウ
docker compose -f deploy/compose/docker-compose.yml up -d
# Read the one-time first-boot setup token from the logs:
docker compose -f deploy/compose/docker-compose.yml logs olivares | sed -n '/FIRST-BOOT SETUP/,/========================/p'
# Then open https://localhost:8443 (self-signed TLS by default)

マルチテナントの Postgres バックエンドを使う場合は、パスワードを設定して Postgres オーバーライドを重ねます:

ターミナルウィンドウ
cp deploy/compose/.env.example deploy/compose/.env # set the two passwords
docker compose -f deploy/compose/docker-compose.yml \
-f deploy/compose/docker-compose.postgres.yml up -d

デプロイ用パッケージは Business チャネルで提供されます。ここでは公開状況は未検証です。ローカルチャートを使う前に、チャネルの手順でパッケージと発行者を検証してください。マニフェストの例では Business が提供する business-install.yaml を使います。エアギャップ環境へのインストールには Enterprise が必要です。

ターミナルウィンドウ
# Set these inputs from the authenticated Business channel after verification.
helm upgrade --install olivares "$BUSINESS_CHART_PACKAGE" \
--set image.repository="$BUSINESS_IMAGE_REPOSITORY" \
--set image.digest="$BUSINESS_IMAGE_DIGEST"
トポロジー 用途 ストア イベントバス
単一バイナリ 単一ノード、ラボ、小規模 estate、エアギャップ SQLite (埋め込み) インプロセス
分散 マルチホスト、スケール、マルチテナント Postgres + RLS インプロセス + NATS ブリッジ (OLIVARES_BUS_CONFIG。ノード間配信は正直なところ最大 1 回 (at-most-once))
エアギャップ egress が許可されない SQLite または Postgres インプロセス (境界内であれば NATS ブリッジは任意)

data-plane (コレクター) は常に自分のインフラ上で動作します — control plane だけが ホスト先を選べる対象です。トレードオフについては アーキテクチャ概要 が説明しています。

新規インストールの estate は空です。実際のソース (Postgres pgAudit、CloudTrail、 エージェントからの OpenTelemetry、eBPF) を結線して access map を埋めましょう — ソースを接続する と Claude Code を接続する を参照してください。設定の全体像は 設定リファレンス を参照してください。