Ir al contenido

Autoaloja Olivares AI

Los paquetes de despliegue se suministran por el canal Business; su publicación no está verificada aquí. Verifica el paquete del chart y su editor con las instrucciones del canal antes de usar el chart local. El ejemplo de manifiesto usa un archivo Business llamado business-install.yaml. La instalación aislada requiere 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.

La próxima release es 0.4; todavía no está publicada en GitHub. Los comandos siguientes describen los artefactos previstos. Compila desde el código fuente hasta su publicación y verifica cada artefacto antes de usarlo. El estado observado está en docs/releases/0.4-install-surfaces.json.

Olivares AI es autoalojable por diseño. Todo el producto es un único binario estático con la interfaz web embebida, así que el despliegue más sencillo es un solo fichero; existen rutas con Compose y Kubernetes para multinodo y producción. Todas las rutas comparten los mismos valores por defecto seguros — sin credenciales por defecto, un token de configuración de un solo uso, TLS activado por defecto —, sin telemetría obligatoria ni egreso del plano de control de forma predeterminada. Solo cruza tu perímetro lo que tú configuras para que lo cruce: llamadas a tus API de modelos, las salidas SIEM/webhook que conectas y un proveedor externo de embeddings si aprovisionas uno.

Esta guía es la página de decisión del despliegue — las opciones y sus valores por defecto seguros de un vistazo. Para la instalación paso a paso de cada escenario, los tutoriales de inicio recorren cada ruta de principio a fin: nodo único (systemd) · Docker Compose · Kubernetes/Helm · aislado de red (air-gapped). Para verificar los artefactos criptográficamente primero, consulta Verifica lo que has descargado; para sitios desconectados, consulta Instala en un entorno aislado de red.

Entrega de eventos NATS: El puente Core NATS y NATS JetStream requieren Business Identity & Scale. Community entrega los eventos dentro del proceso.

Valores por defecto seguros (todas las rutas)

Sección titulada «Valores por defecto seguros (todas las rutas)»
Valor por defecto Comportamiento
Credenciales ninguna. El primer arranque imprime un token de configuración de un solo uso (olst_…); con él creas el primer administrador.
TLS activado por defecto. --insecure (texto plano) es solo para desarrollo en localhost.
Bind todas las interfaces (:8443, :8444) por defecto: esto es un servidor. Usa --listen 127.0.0.1:8443 --grpc-listen 127.0.0.1:8444 para restringirlo a este host.
Licencia En el binario abierto (AGPL), la licencia se valida offline (Ed25519) y solo sirve como atestación — nunca restringe ni degrada el producto abierto, y eso no cambia. Business incluye Regulated Operations, AI Runtime Security, Compliance Packs e Identity & Scale en una sola suscripción. Los clientes pueden activar o desactivar cada familia. Business y Enterprise se entregan como binarios; el código fuente de pago permanece privado.
Telemetría-home desactivada. El motor no hace llamadas salientes obligatorias en el arranque.

Compila el único artefacto estático (almacén SQLite en Go puro, sin cadena de herramientas C) y ejecútalo:

Ventana de terminal
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

En el primer arranque el motor imprime el banner de configuración:

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

Crea el primer administrador y luego inicia sesión:

Ventana de terminal
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>"}'

El directorio de datos contiene la base de datos SQLite, la clave de firma de auditoría y el material TLS — haz copia de seguridad y protégelo.

Directorio de datos personalizado (layout: custom)

Sección titulada «Directorio de datos personalizado (layout: custom)»

El diseño nativo predeterminado es /var/lib/olivares. El adaptador de servicio firmado (install.sh --data-dir, scripts/install-service.sh) admite un directorio de datos personalizado por forma, no por lista de permitidos. El manifiesto de propiedad registra "layout": "custom" (CHANGELOG.md [26.9.0] Added; INSTALL.md).

SDD 04 §6: cada campo configurable declara propietario, esquema, fuentes aceptadas y validador. Aquí el adaptador posee el directorio dedicado; el operador posee el padre. Estas son las cadenas de rechazo del propio adaptador (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 usa la misma regla de dos niveles para 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. Honra OLIVARES_DATA_DIR y un OLIVARES_WORKSPACE_DIR seleccionado de forma explícita.

La unidad representa el directorio como ReadWritePaths=<data-dir>. Fija ProtectHome=false y PrivateTmp=false, así que un directorio bajo /home, /root, /run/user, /tmp o /var/tmp no necesita ningún montaje adicional. El instalador avisa de que /tmp y /var/tmp pueden vaciarse al arrancar o con un temporizador.

olivares uninstall admite ese directorio personalizado solo cuando la unidad en su ruta indexada ejecuta el motor con él, o cuando un preserve ya dejó un testigo de desinstalación junto a la configuración del servicio. Diagnostica el layout AgentOps registrado con olivares doctor — véase Resolución de problemas.

En instalaciones por paquete el valor predeterminado sigue siendo /var/lib/olivares. Véase Instalar desde un paquete. En macOS, Instalar con Homebrew.

Opción 2 — Docker Compose (nodo único, SQLite)

Sección titulada «Opción 2 — Docker Compose (nodo único, SQLite)»

El repositorio incluye un stack de Compose:

Ventana de terminal
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)

Para un backend Postgres multiinquilino, define las contraseñas y superpón el override de Postgres:

Ventana de terminal
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

Los paquetes de despliegue se suministran por el canal Business; su publicación no está verificada aquí. Verifica el paquete del chart y su editor con las instrucciones del canal antes de usar el chart local. El ejemplo de manifiesto usa un archivo Business llamado business-install.yaml. La instalación aislada requiere Enterprise.

Ventana de terminal
# 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"
Topología Cuándo Almacén Bus de eventos
Binario único nodo único, laboratorio, estate pequeño, aislado de red SQLite (embebido) en proceso
Distribuida multi-host, escala, multiinquilino Postgres + RLS en proceso + puente NATS (OLIVARES_BUS_CONFIG; la entrega entre nodos es, con honestidad, como mucho una vez)
Aislada de red sin egreso permitido SQLite o Postgres en proceso (puente NATS opcional dentro del perímetro)

El data-plane (colectores) siempre se ejecuta en tu infraestructura — el control plane es lo único cuya ubicación de alojamiento eliges. La visión general de la arquitectura explica las disyuntivas.

Una instalación nueva tiene un estate vacío. Cablea fuentes reales (Postgres pgAudit, CloudTrail, OpenTelemetry desde agentes, eBPF) para que el access map se pueble — consulta conectar una fuente y conectar Claude Code. Para la superficie de configuración, consulta la referencia de configuración.