Перейти к содержимому

Самостоятельный хостинг Olivares AI

Olivares AI ориентирован на самостоятельный хостинг в первую очередь. Весь продукт — это один статический бинарный файл со встроенным веб-интерфейсом, поэтому самое простое развёртывание — это один файл; пути через Compose и Kubernetes существуют для многоузловых и продакшен-сценариев. Все пути используют одни и те же безопасные настройки по умолчанию — без учётных данных по умолчанию, одноразовый токен установки, TLS включён по умолчанию —, без обязательной телеметрии и исходящего трафика управляющей плоскости по умолчанию. За ваш периметр выходит только то, что вы настроили для передачи наружу: обращения к API ваших моделей, подключённые вами выходы SIEM/webhook и внешний поставщик эмбеддингов, если вы его настроили.

Это руководство представляет собой страницу принятия решения о развёртывании — варианты и их безопасные настройки по умолчанию с первого взгляда. Пошаговую установку для каждого сценария руководства по началу работы описывают от и до: один узел (systemd) · Docker Compose · Kubernetes/Helm · изолированная среда (air-gapped). Чтобы сначала криптографически проверить артефакты, см. Проверка того, что вы скачали; для отключённых от сети площадок см. Установка в изолированной среде (air-gapped).

Безопасные настройки по умолчанию (все пути)

Заголовок раздела «Безопасные настройки по умолчанию (все пути)»
По умолчаниюПоведение
Учётные данныеотсутствуют. При первой загрузке выводится одноразовый токен установки (olst_…); с его помощью вы создаёте первого администратора.
TLSвключён по умолчанию. --insecure (открытый текст) предназначен только для локальной разработки на localhost.
Привязка (bind)бинарный файл по умолчанию привязывается к loopback; открывайте его наружу осознанно.
ЛицензияВ открытом (AGPL) бинарнике лицензия проверяется офлайн (Ed25519) и служит только для аттестации: она никогда не блокирует и не ухудшает открытый продукт, и это не изменится. Коммерческие надстройки — это право на оплаченный срок, предоставляемое как доступ по подписке к репозиториям enterprise-редакции (модель SUSE/Novell): чтобы получить надстройки и получать их обновления — включая обновления безопасности, — необходимо это право. Изолированные (air-gapped) среды обслуживаются так же, как в SUSE: через локальное зеркало, на которое по-прежнему распространяется это право.
Телеметрия-домойотключена. Движок не делает обязательных исходящих вызовов при загрузке.

Соберите один статический артефакт (хранилище SQLite на чистом Go, поэтому 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. 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 -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 -fsS -X POST https://localhost:8443/v1/auth/login \
-H 'Content-Type: application/json' \
-d '{"email":"you@example.com","password":"<strong-password>"}'

Каталог данных содержит базу данных SQLite, ключ подписи аудита и материал TLS — делайте его резервную копию и защищайте его.

Репозиторий поставляется со стеком 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

Подписанный Helm-чарт развёртывает control plane как core StatefulSet (единственный писатель; его каталог данных содержит ключ подписи аудита и материал TLS) и, для распределённой топологии, DaemonSet коллекторов, которые отправляют наблюдения в ядро по gRPC + mTLS. При релизе чарт публикуется в OCI-реестр и подписывается cosign, так что вы проверяете его при установке и закрепляете по дайджесту. (Первый релиз пока остаётся черновиком: пока не вырезан тег chart-v*, путь реестра пуст, поэтому команда ниже — это путь, который вы будете использовать, как только релиз будет опубликован.)

Окно терминала
helm install olivares \
oci://ghcr.io/olivaresai/charts/olivares \
--version <chart-version> \
--set image.repository=docker.io/olivaresai/olivares \
--set image.digest=<sha256-digest>

Опубликованный чарт подписан cosign поверх OCI-манифеста, а не GPG: пайплайн релиза не выпускает слой .prov, поэтому helm --verify его не проверит. Проверяйте через cosign verify против identity release-chart.yml@refs/tags/chart-v* — см. deploy/helm/README.md.

Чарт получает образ контейнера из Docker Hub (docker.io/olivaresai/olivares); тот же образ также находится в ghcr.io/olivaresai/olivares, идентичный по дайджесту; направьте image.repository туда, если мешает лимит анонимных пулов Docker Hub (ghcr.io не применяет его к публичным образам). Сам артефакт чарта остаётся в oci://ghcr.io/olivaresai/charts/olivares.

Всегда развёртывайте по дайджесту, никогда по изменяемому тегу. Для полностью отключённого от сети кластера сначала зеркалируйте бандл — см. установку в изолированной среде.

ТопологияКогдаХранилищеШина событий
Единый бинарный файлодин узел, лаборатория, небольшой estate, изолированная средаSQLite (встроенный)внутрипроцессная
Распределённаянесколько хостов, масштабирование, многоарендностьPostgres + RLSвнутрипроцессная + мост NATS (OLIVARES_BUS_CONFIG; межузловая доставка честно реализована не более одного раза (at-most-once))
Изолированная (air-gapped)исходящий трафик запрещёнSQLite или Postgresвнутрипроцессная (мост NATS опционален внутри периметра)

Плоскость данных (коллекторы) всегда работает на вашей инфраструктуре — control plane — это единственное, для чего вы выбираете, где его размещать. Обзор архитектуры объясняет компромиссы.

Свежая установка имеет пустой estate. Подключите реальные источники (Postgres pgAudit, CloudTrail, OpenTelemetry от агентов, eBPF), чтобы access map заполнялась — см. подключение источника и подключение Claude Code. Для поверхности конфигурации см. справочник по конфигурации.