Environment-переменные
И ongrid, и ongrid-edge конфигурируются исключительно через environment-переменные. Никакого YAML. Канонический wiring живёт в internal/pkg/config/config.go и env-блоке compose в deploy/docker-compose.yml. Каждая переменная ниже читается при старте; manager не делает hot-reload.
Таблицы группируют переменные по подсистемам. Показанные дефолты — это то, что бинарь подхватывает, когда переменная не задана или пуста. "Required" значит "фича в первой колонке не будет работать без неё".
HTTP & metrics listener'ы
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_HTTP_ADDR | string | :8080 | TCP listen для API + SPA. nginx в compose-стеке проксирует /api/* сюда. |
ONGRID_METRICS_ADDR | string | :9100 | TCP listen для /metrics. Скрейпится Prometheus. |
ONGRID_TUNNEL_ADDR | string | :40012 | Listen geminio-брокера. Биндится сервисом frontier, не самим manager'ом. |
ONGRID_PUBLIC_URL | string | empty | Канонический https://... URL, который manager раздаёт edges как data-plane endpoint (ingest логов/трейсов, скачивание edge bundle). Пустое отключает data-plane эндпоинты плагинов. Задайте это в продакшене. |
База данных (MySQL по умолчанию, SQLite opt-in)
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_DB_DIALECT | string | mysql | mysql (по умолчанию) или sqlite. Пустое трактуется как mysql. |
ONGRID_DB_DSN | string | ongrid:ongrid@tcp(127.0.0.1:3306)/ongrid?parseTime=true&charset=utf8mb4&loc=Local | MySQL DSN. Обязателен в продакшене. |
ONGRID_DB_PATH | string | ./data/ongrid.db | Путь к файлу SQLite-базы. :memory: принимается в тестах. |
JWT (iam)
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_JWT_SECRET | string | dev-insecure-secret-change-me | HS256 ключ подписи для access + refresh токенов. Обязателен; дефолт отказывается выпускать токены в production-сборках. |
ONGRID_JWT_ACCESS_TTL | duration | 15m | TTL access-токена. |
ONGRID_JWT_REFRESH_TTL | duration | 168h (7d) | TTL refresh-токена. |
Duration'ы принимают синтаксис Go time.ParseDuration (15m, 2h, 30s). Голое целое интерпретируется как секунды.
LLM-провайдеры
Chat-агент поддерживает шесть first-class провайдеров плюс слот Custom (OpenAI-совместимый). Каждый провайдер гейтится своим API-ключом — пустой ключ = провайдер не показывается в chat-picker'е.
OpenAI
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_OPENAI_API_KEY | string | empty | OpenAI API-ключ. Пустое = OpenAI скрыт из picker'а. |
ONGRID_OPENAI_MODEL | string | gpt-5.4 | Модель по умолчанию, когда OpenAI — выбранный провайдер. |
ONGRID_OPENAI_BASE_URL | string | empty | Переопределить base URL для OpenAI-совместимых relay (Azure / vLLM / Ollama / one-api). |
Anthropic, Zhipu, Gemini, DeepSeek, Kimi
Каждый провайдер имеет те же три ключа (API key / default model / base URL) и четвёртый (MODELS, comma-separated список slug'ов моделей для выбора):
| Переменная | По умолчанию |
|---|---|
ONGRID_ANTHROPIC_API_KEY | empty |
ONGRID_ANTHROPIC_MODEL | claude-sonnet-4-6 |
ONGRID_ANTHROPIC_BASE_URL | empty |
ONGRID_ANTHROPIC_MODELS | claude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5 |
ONGRID_ZHIPU_API_KEY | empty |
ONGRID_ZHIPU_MODEL | glm-4.7 |
ONGRID_ZHIPU_BASE_URL | empty |
ONGRID_ZHIPU_MODELS | glm-5.1,glm-5,glm-4.7,glm-4.7-flash |
ONGRID_GEMINI_API_KEY | empty |
ONGRID_GEMINI_MODEL | gemini-2.5-pro |
ONGRID_GEMINI_BASE_URL | empty |
ONGRID_GEMINI_MODELS | gemini-3.5-flash,gemini-2.5-pro,gemini-2.5-flash |
ONGRID_DEEPSEEK_API_KEY | empty |
ONGRID_DEEPSEEK_MODEL | deepseek-v4-flash |
ONGRID_DEEPSEEK_BASE_URL | empty |
ONGRID_DEEPSEEK_MODELS | deepseek-v4-pro,deepseek-v4-flash,deepseek-reasoner |
ONGRID_KIMI_API_KEY | empty |
ONGRID_KIMI_MODEL | kimi-k2.6 |
ONGRID_KIMI_BASE_URL | empty |
ONGRID_KIMI_MODELS | kimi-k2.6,kimi-k2.5,moonshot-v1-128k |
Маршрутизация & бюджет
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_LLM_DEFAULT_PROVIDER | string | empty | Провайдер, используемый, когда запрос не указывает провайдера. Пустое = первый настроенный провайдер (алфавитно). Задайте это, когда хотите, чтобы конкретный провайдер был site-default. |
ONGRID_LLM_DAILY_TOKEN_LIMIT | int | 0 | Глобальный per-UTC-day потолок токенов. 0 = безлимит. |
Agent-ядро & tools
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_AGENT_KERNEL | string | graph | graph включает eino graph-ядро + SkillRegistry.Resolve activation-keyword фильтр + ToolBag pipeline отложения. legacy — старый for-loop runner со всеми tools всегда full-schema. Переключайтесь на legacy только для bisect. |
ONGRID_TOOLBAG_DEFERRAL_THRESHOLD | int | 30 | Порог количества tools, выше которого специальные tools получают отредактированные схемы (LLM должна вызвать ToolSearch для расширения). |
ONGRID_SKILLS_EXTERNAL_DIRS | csv | empty | Comma/colon-separated абсолютные пути, которые skill-loader сканирует на манифесты skill.json. Каждый должен быть абсолютным; относительные или отсутствующие записи пропускаются с лог-строкой. |
Клиент frontier-брокера
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_FRONTIER_ADDR | string | frontier:40011 | Service-bound listen upstream frontier-брокера, на который дозванивается manager. |
ONGRID_FRONTIER_SERVICE_NAME | string | ongrid-manager | Идентификатор, сообщаемый при подключении. |
ONGRID_FRONTIER_DISABLED | bool | false | Полностью пропускает long-lived service-end dial. Используется e2e-harness — фичи, требующие брокера (webssh, reverse-вызовы edge), ошибаются на месте вызова. |
Cloud-side Prometheus
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_PROM_ENABLED | bool | false | Гейтит wiring Prometheus. Когда false, manager работает без хранилища метрик; push_prom_samples молча дропает, и query_promql не регистрируется как tool. |
ONGRID_PROM_URL | string | http://prometheus:9090 | Root URL prom-сервера. |
ONGRID_PROM_REMOTE_WRITE_URL | string | empty | Точный remote_write endpoint, когда upstream не укоренён на /api/v1/write (Mimir / Cortex / VictoriaMetrics gateway). |
ONGRID_PROM_QUERY_URL | string | empty | Root Query API для query_promql. Пустое — fallback на ONGRID_PROM_URL. |
ONGRID_PROM_TLS_INSECURE | bool | false | Пропустить верификацию TLS-сертификата. |
ONGRID_PROM_TLS_CA_FILE | string | empty | PEM-файл с корневым CA, используемым для верификации сертификата TSDB. Пустое = system roots. |
Grafana
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_GRAFANA_INTERNAL_URL | string | http://grafana:3000/grafana | URL, по которому manager достучивается до Grafana через docker-сеть. |
ONGRID_GRAFANA_BOOTSTRAP_USER | string | admin | Одноразовый admin-пользователь, используемый для авто-создания ongrid Service Account + токена. |
ONGRID_GRAFANA_BOOTSTRAP_PASSWORD | string | empty | Bootstrap-пароль; пустое отключает bootstrap (вставьте вручную созданный SA-токен в UI). |
ONGRID_GRAFANA_TLS_INSECURE | bool | false | Пропустить верификацию сертификата для bootstrap-вызова. |
ONGRID_GRAFANA_ROOT_URL | string | %(protocol)s://%(domain)s/grafana/ | Форвардится в GF_SERVER_ROOT_URL. |
Логи & трейсы (data plane)
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_LOG_QUERY_URL | string | http://loki:3100 | Root Loki API, с которым говорит manager для query_range / labels / values. Пустое = страница Логов возвращает 503. |
ONGRID_TRACE_QUERY_URL | string | http://tempo:3200 | Root HTTP-listener'а Tempo для /api/search, /api/traces/<id>, /api/search/tag/<tag>/values. Пустое = страница Трейсов возвращает 503. |
Data-plane эндпоинты edge (куда плагины логов/трейсов POST'ят) выводятся из ONGRID_PUBLIC_URL; см. Плоскость данных телеметрии.
Встроенные пороги алертов
Они приводят в действие четыре канонических встроенных правила над закрытым набором host-метрик. Задайте 0 для отключения.
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_ALERT_ENABLED | bool | true | Главный переключатель оценки встроенных host-алертов. |
ONGRID_ALERT_COOLDOWN | duration | 10m | Per-(edge, rule) cooldown. Уведомления внутри этого окна подавляются. |
ONGRID_ALERT_CPU_PERCENT | float | 90 | Срабатывает, когда cpu_pct >= threshold. |
ONGRID_ALERT_MEM_PERCENT | float | 90 | Срабатывает, когда mem_pct >= threshold. |
ONGRID_ALERT_DISK_USED_PERCENT | float | 90 | Срабатывает, когда disk_used_pct >= threshold. |
ONGRID_ALERT_LOAD1 | float | 0 | Срабатывает, когда load1 >= threshold. 0 отключает (load слишком сильно варьируется по типам хостов для полезного дефолта). |
ONGRID_ALERT_EVAL_INTERVAL | duration | 5m | Как часто evaluator pipeline сканирует edges и запрашивает Prom. |
ONGRID_ALERT_EDGE_OFFLINE_THRESHOLD | duration | 90s | Старость heartbeat'а, выше которой edge считается offline. |
ONGRID_ALERT_PROM_INGEST_FAIL_LIMIT | int | 5 | Количество последовательных failure'ов remote_write, при котором срабатывает prom_ingest_fail. |
Уведомления
Главный переключатель + четыре встроенных типа каналов. Каналы, созданные через UI, несут свой собственный enabled-флаг и не затрагиваются этими.
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_NOTIFY_ENABLED | bool | true | Главный переключатель исходящих уведомлений. |
ONGRID_NOTIFY_DEFAULT_CHANNELS | csv | empty | Упорядоченный список имён каналов, используемый, когда вызывающий не указывает destination'ы. |
ONGRID_NOTIFY_TIMEOUT | duration | 10s | Per-channel timeout отправки. |
ONGRID_NOTIFY_WEBHOOK_ENABLED | bool | false | Включить webhook-канал, настроенный env'ом. |
ONGRID_NOTIFY_WEBHOOK_NAME | string | webhook | Отображаемое имя. |
ONGRID_NOTIFY_WEBHOOK_URL | string | empty | POST endpoint. |
ONGRID_NOTIFY_WEBHOOK_SECRET | string | empty | Опциональный HMAC secret. |
ONGRID_NOTIFY_SLACK_ENABLED | bool | false | Включить Slack-канал, настроенный env'ом. |
ONGRID_NOTIFY_SLACK_NAME | string | slack | Отображаемое имя. |
ONGRID_NOTIFY_SLACK_WEBHOOK_URL | string | empty | URL Incoming Webhook. |
ONGRID_NOTIFY_FEISHU_ENABLED | bool | false | Включить Larksuite / Feishu канал, настроенный env'ом. |
ONGRID_NOTIFY_FEISHU_NAME | string | feishu | Отображаемое имя. |
ONGRID_NOTIFY_FEISHU_WEBHOOK_URL | string | empty | Custom-Bot URL. |
ONGRID_NOTIFY_FEISHU_SECRET | string | empty | Подписной secret. |
ONGRID_NOTIFY_DINGTALK_ENABLED | bool | false | Включить DingTalk канал, настроенный env'ом. |
ONGRID_NOTIFY_DINGTALK_NAME | string | dingtalk | Отображаемое имя. |
ONGRID_NOTIFY_DINGTALK_WEBHOOK_URL | string | empty | Custom-Bot URL. |
ONGRID_NOTIFY_DINGTALK_SECRET | string | empty | Подписной secret. |
Для каналов WeCom и Telegram создавайте их через UI Settings → Channels — они first-class, но не имеют env-shortcut'а конфигурации.
Bootstrap admin
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_ADMIN_EMAIL | string | empty | Email bootstrap-админа. Если пусто, admin не seed'ится; вы должны зарегистрироваться из UI при первом boot. |
ONGRID_ADMIN_PASSWORD | string | empty | Начальный пароль. Ожидается, что оператор сменит его при первом входе. |
Edge-агент
Они потребляются ongrid-edge, записываются в /etc/ongrid-edge/ongrid-edge.env инсталлером.
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_EDGE_CLOUD_ADDR | string | 127.0.0.1:40012 | host:port frontier-брокера. Агент дозванивается с TLS. |
ONGRID_EDGE_ACCESS_KEY | string | empty | Per-edge access-ключ. Выдаётся manager'ом, когда вы создаёте edge в UI. |
ONGRID_EDGE_SECRET_KEY | string | empty | Соответствующий secret. Показывается один раз при создании edge; ротируется через UI. |
ONGRID_EDGE_COLLECTOR_MODE | string | off | off (по умолчанию; плагины hostmetrics + procmetrics обрабатывают метрики), auto (legacy embedded + scraper), embedded (только embedded push), scrape (multi-target HTTP scraper). |
ONGRID_EDGE_SCRAPE_CONFIG_FILE | string | /etc/ongrid-edge/scrape.yaml | Путь к YAML-конфигу scrape. Консультируется только когда COLLECTOR_MODE=scrape. |
ONGRID_EDGE_COLLECTOR_INTERVAL | duration | 10s | Как часто embedded collector делает snapshot. Scrape-режим игнорирует это. |
ONGRID_EDGE_PLUGIN_BIN_DIR | string | /usr/local/lib/ongrid-edge | Директория, содержащая бинари плагинов (promtail, otelcol-contrib, node_exporter, process_exporter). |
ONGRID_EDGE_PLUGIN_WORK_DIR | string | /var/lib/ongrid-edge/plugins | Per-plugin runtime-директории (configs, PID-файлы, queue spool). |
ONGRID_EDGE_UPGRADE_STAGE_DIR | string | /var/lib/ongrid-edge/.upgrade | Директория staged-bundle ADR-024. Пустое отключает удалённые whole-bundle апгрейды. |
ONGRID_INSTALL_WAIT | int | 20 | Секунд, в течение которых curl-pipe инсталлер опрашивает journal в ожидании "registered with cloud". |
Embedding & RAG
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_EMBEDDING_PROVIDER | string | zhipu | zhipu (по умолчанию; вызывает GLM embedding API), local (использует on-disk bge-модель), openai (использует OpenAI embeddings). |
ONGRID_EMBEDDING_LOCAL_MODEL_PATH | string | empty | Абсолютный путь к локальной модели, когда PROVIDER=local. Release-tarball выкладывает bge-base-en-v1.5 под .cache/. |
ONGRID_VAULT_REPO_URL | string | https://github.com/ongridio/vault | Upstream vault-репозиторий, из которого manager подтягивает baseline-знания. Переопределите для air-gapped зеркал. |
Locale & разное
| Переменная | Тип | По умолчанию | Описание |
|---|---|---|---|
ONGRID_DEFAULT_LOCALE | string | en | Locale по умолчанию, используемая автоматическими LLM-выводами (расследования алертов, scheduled summary'и). UI-триггерный chat использует UI-locale пользователя вместо этой. |
См. также
- REST API — эндпоинты, которые эти env-переменные связывают.
- CLI — флаги командной строки двух бинарей.
- Плоскость данных телеметрии — почему эндпоинты логов/трейсов отличаются от туннеля.
- Архитектура — где каждая env-переменная живёт в диаграмме стека.