Zum Inhalt springen

Olivares AI selbst hosten

Deployment-Pakete werden über den Business-Kanal bereitgestellt; ihre Veröffentlichung ist hier nicht bestätigt. Prüfen Sie das Chart-Paket und den Herausgeber anhand der Kanalanleitung, bevor Sie das lokale Chart verwenden. Das Manifest-Beispiel nutzt eine von Business bereitgestellte Datei namens business-install.yaml. Die Installation ohne Netz erfordert 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.

Das nächste Release ist 0.4; es ist noch nicht auf GitHub veröffentlicht. Die folgenden Befehle beschreiben die geplanten Artefakte. Bauen Sie bis zur Veröffentlichung aus dem Quellcode und prüfen Sie danach jedes Artefakt vor der Verwendung. Der beobachtete Veröffentlichungsstand steht in docs/releases/0.4-install-surfaces.json.

Olivares AI ist self-host-first. Das gesamte Produkt ist eine statische Binärdatei mit eingebetteter Web-UI, sodass die einfachste Bereitstellung eine einzige Datei ist; für Multi-Node und Produktion existieren Compose- und Kubernetes-Wege. Jeder Weg teilt dieselben sicheren Standardeinstellungen — keine Standard-Anmeldedaten, ein einmaliger Setup-Token, TLS standardmäßig aktiviert — sowie keine verpflichtende Telemetrie und standardmäßig kein Egress der Control Plane. Ihren Perimeter überschreitet nur, was Sie dafür konfigurieren: Aufrufe an Ihre Modell-APIs, die von Ihnen eingerichteten SIEM-/Webhook-Ausgaben und ein externer Embedding-Anbieter, falls Sie einen bereitstellen.

Dieser Leitfaden ist die Entscheidungsseite zur Bereitstellung — die Optionen und ihre sicheren Standardeinstellungen auf einen Blick. Für die schrittweise Installation jedes Szenarios führen die Erste-Schritte-Tutorials jeden Weg von Anfang bis Ende durch: Single Node (systemd) · Docker Compose · Kubernetes/Helm · air-gapped. Um die Artefakte zuerst kryptografisch zu verifizieren, siehe Überprüfen, was Sie heruntergeladen haben; für getrennte Standorte siehe Installation in einer air-gapped-Umgebung.

NATS-Ereigniszustellung: Die Core-NATS-Brücke und NATS JetStream benötigen Business Identity & Scale. Community stellt Ereignisse innerhalb des Prozesses zu.

Standard Verhalten
Anmeldedaten keine. Der erste Start gibt einen einmaligen, nur einmal verwendbaren Setup-Token aus (olst_…); damit erstellen Sie den ersten Administrator.
TLS standardmäßig aktiviert. --insecure (Klartext) ist nur für die lokale Entwicklung auf localhost gedacht.
Bind standardmäßig alle Schnittstellen (:8443, :8444) — dies ist ein Server. Mit --listen 127.0.0.1:8443 --grpc-listen 127.0.0.1:8444 beschränken Sie sie auf diesen Host.
Lizenz Im offenen (AGPL-)Binary wird die Lizenz offline validiert (Ed25519) und dient nur der Attestierung — sie sperrt oder degradiert das offene Produkt niemals, und das ändert sich nicht. Business umfasst Regulated Operations, AI Runtime Security, Compliance Packs und Identity & Scale in einem einzigen Abonnement. Kunden können jede Familie aktivieren oder deaktivieren. Business und Enterprise werden als Binärdateien ausgeliefert; der Quellcode der kostenpflichtigen Editionen bleibt privat.
Telemetry-home aus. Die Engine führt beim Start keine verpflichtenden ausgehenden Aufrufe durch.

Erstellen Sie das eine statische Artefakt (reiner Go-SQLite-Store, also keine C-Toolchain) und führen Sie es aus:

Terminal-Fenster
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

Beim ersten Start gibt die Engine das Setup-Banner aus:

=== 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.
========================

Erstellen Sie den ersten Administrator und melden Sie sich dann an:

Terminal-Fenster
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>"}'

Das Datenverzeichnis enthält die SQLite-Datenbank, den Signierschlüssel des Audit-Ledgers und das TLS-Material — sichern und schützen Sie es.

Benutzerdefiniertes Datenverzeichnis (layout: custom)

Abschnitt betitelt „Benutzerdefiniertes Datenverzeichnis (layout: custom)“

Das Standard-Native-Layout ist /var/lib/olivares. Der signierte Service-Adapter (install.sh --data-dir, scripts/install-service.sh) lässt ein benutzerdefiniertes Datenverzeichnis nach Form zu, nicht nach Allowlist. Das Ownership-Manifest zeichnet "layout": "custom" auf (CHANGELOG.md [26.9.0] Added; INSTALL.md).

SDD 04 §6: jedes konfigurierbare Feld erklärt Owner, Schema, akzeptierte Quellen und Validator. Hier besitzt der Adapter das dedizierte Verzeichnis; der Operator besitzt das Elternverzeichnis. Das sind die eigenen Ablehnungstexte des Adapters (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 verwendet dieselbe Zwei-Ebenen-Regel für OLIVARES_DATA_DIR: OLIVARES_DATA_DIR must name a dedicated directory at least two levels deep (for example /srv/olivares), not a top-level directory. Es beachtet OLIVARES_DATA_DIR und ein ausdrücklich gewähltes OLIVARES_WORKSPACE_DIR.

Die Unit rendert das Verzeichnis als ReadWritePaths=<data-dir>. Sie setzt ProtectHome=false und PrivateTmp=false, daher braucht ein Verzeichnis unter /home, /root, /run/user, /tmp oder /var/tmp keinen zusätzlichen Mount. Der Installer warnt, dass /tmp und /var/tmp beim Booten oder per Timer geleert werden können.

olivares uninstall lässt dieses benutzerdefinierte Verzeichnis nur zu, wenn die Unit an ihrem indexierten Pfad die Engine damit ausführt, oder wenn ein Preserve bereits einen Uninstall-Zeugen neben der Service-Konfiguration hinterlassen hat. Diagnostizieren Sie das aufgezeichnete AgentOps-Layout mit olivares doctor — siehe Fehlerbehebung.

Für Paketinstallationen bleibt der Standard /var/lib/olivares. Siehe Aus einem Paket installieren. Unter macOS siehe Mit Homebrew installieren.

Das Repository liefert einen Compose-Stack mit:

Terminal-Fenster
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)

Für ein mandantenfähiges Postgres-Backend setzen Sie die Passwörter und legen das Postgres-Override darüber:

Terminal-Fenster
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

Deployment-Pakete werden über den Business-Kanal bereitgestellt; ihre Veröffentlichung ist hier nicht bestätigt. Prüfen Sie das Chart-Paket und den Herausgeber anhand der Kanalanleitung, bevor Sie das lokale Chart verwenden. Das Manifest-Beispiel nutzt eine von Business bereitgestellte Datei namens business-install.yaml. Die Installation ohne Netz erfordert Enterprise.

Terminal-Fenster
# 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"
Topologie Wann Store Event-Bus
Einzelne Binärdatei Single Node, Labor, kleine estate, air-gap SQLite (eingebettet) in-process
Verteilt Multi-Host, Skalierung, mandantenfähig Postgres + RLS in-process + NATS-Bridge (OLIVARES_BUS_CONFIG; die knotenübergreifende Zustellung ist ehrlicherweise at-most-once)
Air-gapped kein Egress erlaubt SQLite oder Postgres in-process (NATS-Bridge optional innerhalb des Perimeters)

Die Data Plane (Collectors) läuft immer auf Ihrer Infrastruktur — die control plane ist das Einzige, bei dem Sie wählen, wo Sie es hosten. Der Architekturüberblick erklärt die Abwägungen.

Eine frische Installation hat eine leere estate. Verdrahten Sie echte Quellen (Postgres pgAudit, CloudTrail, OpenTelemetry von Agenten, eBPF), damit sich die access map füllt — siehe eine Quelle anbinden und Claude Code anbinden. Für die Konfigurationsoberfläche siehe die Konfigurationsreferenz.