Skip to content

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_ADDRstring:8080TCP listen для API + SPA. nginx в compose-стеке проксирует /api/* сюда.
ONGRID_METRICS_ADDRstring:9100TCP listen для /metrics. Скрейпится Prometheus.
ONGRID_TUNNEL_ADDRstring:40012Listen geminio-брокера. Биндится сервисом frontier, не самим manager'ом.
ONGRID_PUBLIC_URLstringemptyКанонический https://... URL, который manager раздаёт edges как data-plane endpoint (ingest логов/трейсов, скачивание edge bundle). Пустое отключает data-plane эндпоинты плагинов. Задайте это в продакшене.

База данных (MySQL по умолчанию, SQLite opt-in)

ПеременнаяТипПо умолчаниюОписание
ONGRID_DB_DIALECTstringmysqlmysql (по умолчанию) или sqlite. Пустое трактуется как mysql.
ONGRID_DB_DSNstringongrid:ongrid@tcp(127.0.0.1:3306)/ongrid?parseTime=true&charset=utf8mb4&loc=LocalMySQL DSN. Обязателен в продакшене.
ONGRID_DB_PATHstring./data/ongrid.dbПуть к файлу SQLite-базы. :memory: принимается в тестах.

JWT (iam)

ПеременнаяТипПо умолчаниюОписание
ONGRID_JWT_SECRETstringdev-insecure-secret-change-meHS256 ключ подписи для access + refresh токенов. Обязателен; дефолт отказывается выпускать токены в production-сборках.
ONGRID_JWT_ACCESS_TTLduration15mTTL access-токена.
ONGRID_JWT_REFRESH_TTLduration168h (7d)TTL refresh-токена.

Duration'ы принимают синтаксис Go time.ParseDuration (15m, 2h, 30s). Голое целое интерпретируется как секунды.


LLM-провайдеры

Chat-агент поддерживает шесть first-class провайдеров плюс слот Custom (OpenAI-совместимый). Каждый провайдер гейтится своим API-ключом — пустой ключ = провайдер не показывается в chat-picker'е.

OpenAI

ПеременнаяТипПо умолчаниюОписание
ONGRID_OPENAI_API_KEYstringemptyOpenAI API-ключ. Пустое = OpenAI скрыт из picker'а.
ONGRID_OPENAI_MODELstringgpt-5.4Модель по умолчанию, когда OpenAI — выбранный провайдер.
ONGRID_OPENAI_BASE_URLstringemptyПереопределить 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_KEYempty
ONGRID_ANTHROPIC_MODELclaude-sonnet-4-6
ONGRID_ANTHROPIC_BASE_URLempty
ONGRID_ANTHROPIC_MODELSclaude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5
ONGRID_ZHIPU_API_KEYempty
ONGRID_ZHIPU_MODELglm-4.7
ONGRID_ZHIPU_BASE_URLempty
ONGRID_ZHIPU_MODELSglm-5.1,glm-5,glm-4.7,glm-4.7-flash
ONGRID_GEMINI_API_KEYempty
ONGRID_GEMINI_MODELgemini-2.5-pro
ONGRID_GEMINI_BASE_URLempty
ONGRID_GEMINI_MODELSgemini-3.5-flash,gemini-2.5-pro,gemini-2.5-flash
ONGRID_DEEPSEEK_API_KEYempty
ONGRID_DEEPSEEK_MODELdeepseek-v4-flash
ONGRID_DEEPSEEK_BASE_URLempty
ONGRID_DEEPSEEK_MODELSdeepseek-v4-pro,deepseek-v4-flash,deepseek-reasoner
ONGRID_KIMI_API_KEYempty
ONGRID_KIMI_MODELkimi-k2.6
ONGRID_KIMI_BASE_URLempty
ONGRID_KIMI_MODELSkimi-k2.6,kimi-k2.5,moonshot-v1-128k

Маршрутизация & бюджет

ПеременнаяТипПо умолчаниюОписание
ONGRID_LLM_DEFAULT_PROVIDERstringemptyПровайдер, используемый, когда запрос не указывает провайдера. Пустое = первый настроенный провайдер (алфавитно). Задайте это, когда хотите, чтобы конкретный провайдер был site-default.
ONGRID_LLM_DAILY_TOKEN_LIMITint0Глобальный per-UTC-day потолок токенов. 0 = безлимит.

Agent-ядро & tools

ПеременнаяТипПо умолчаниюОписание
ONGRID_AGENT_KERNELstringgraphgraph включает eino graph-ядро + SkillRegistry.Resolve activation-keyword фильтр + ToolBag pipeline отложения. legacy — старый for-loop runner со всеми tools всегда full-schema. Переключайтесь на legacy только для bisect.
ONGRID_TOOLBAG_DEFERRAL_THRESHOLDint30Порог количества tools, выше которого специальные tools получают отредактированные схемы (LLM должна вызвать ToolSearch для расширения).
ONGRID_SKILLS_EXTERNAL_DIRScsvemptyComma/colon-separated абсолютные пути, которые skill-loader сканирует на манифесты skill.json. Каждый должен быть абсолютным; относительные или отсутствующие записи пропускаются с лог-строкой.

Клиент frontier-брокера

ПеременнаяТипПо умолчаниюОписание
ONGRID_FRONTIER_ADDRstringfrontier:40011Service-bound listen upstream frontier-брокера, на который дозванивается manager.
ONGRID_FRONTIER_SERVICE_NAMEstringongrid-managerИдентификатор, сообщаемый при подключении.
ONGRID_FRONTIER_DISABLEDboolfalseПолностью пропускает long-lived service-end dial. Используется e2e-harness — фичи, требующие брокера (webssh, reverse-вызовы edge), ошибаются на месте вызова.

Cloud-side Prometheus

ПеременнаяТипПо умолчаниюОписание
ONGRID_PROM_ENABLEDboolfalseГейтит wiring Prometheus. Когда false, manager работает без хранилища метрик; push_prom_samples молча дропает, и query_promql не регистрируется как tool.
ONGRID_PROM_URLstringhttp://prometheus:9090Root URL prom-сервера.
ONGRID_PROM_REMOTE_WRITE_URLstringemptyТочный remote_write endpoint, когда upstream не укоренён на /api/v1/write (Mimir / Cortex / VictoriaMetrics gateway).
ONGRID_PROM_QUERY_URLstringemptyRoot Query API для query_promql. Пустое — fallback на ONGRID_PROM_URL.
ONGRID_PROM_TLS_INSECUREboolfalseПропустить верификацию TLS-сертификата.
ONGRID_PROM_TLS_CA_FILEstringemptyPEM-файл с корневым CA, используемым для верификации сертификата TSDB. Пустое = system roots.

Grafana

ПеременнаяТипПо умолчаниюОписание
ONGRID_GRAFANA_INTERNAL_URLstringhttp://grafana:3000/grafanaURL, по которому manager достучивается до Grafana через docker-сеть.
ONGRID_GRAFANA_BOOTSTRAP_USERstringadminОдноразовый admin-пользователь, используемый для авто-создания ongrid Service Account + токена.
ONGRID_GRAFANA_BOOTSTRAP_PASSWORDstringemptyBootstrap-пароль; пустое отключает bootstrap (вставьте вручную созданный SA-токен в UI).
ONGRID_GRAFANA_TLS_INSECUREboolfalseПропустить верификацию сертификата для bootstrap-вызова.
ONGRID_GRAFANA_ROOT_URLstring%(protocol)s://%(domain)s/grafana/Форвардится в GF_SERVER_ROOT_URL.

Логи & трейсы (data plane)

ПеременнаяТипПо умолчаниюОписание
ONGRID_LOG_QUERY_URLstringhttp://loki:3100Root Loki API, с которым говорит manager для query_range / labels / values. Пустое = страница Логов возвращает 503.
ONGRID_TRACE_QUERY_URLstringhttp://tempo:3200Root 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_ENABLEDbooltrueГлавный переключатель оценки встроенных host-алертов.
ONGRID_ALERT_COOLDOWNduration10mPer-(edge, rule) cooldown. Уведомления внутри этого окна подавляются.
ONGRID_ALERT_CPU_PERCENTfloat90Срабатывает, когда cpu_pct >= threshold.
ONGRID_ALERT_MEM_PERCENTfloat90Срабатывает, когда mem_pct >= threshold.
ONGRID_ALERT_DISK_USED_PERCENTfloat90Срабатывает, когда disk_used_pct >= threshold.
ONGRID_ALERT_LOAD1float0Срабатывает, когда load1 >= threshold. 0 отключает (load слишком сильно варьируется по типам хостов для полезного дефолта).
ONGRID_ALERT_EVAL_INTERVALduration5mКак часто evaluator pipeline сканирует edges и запрашивает Prom.
ONGRID_ALERT_EDGE_OFFLINE_THRESHOLDduration90sСтарость heartbeat'а, выше которой edge считается offline.
ONGRID_ALERT_PROM_INGEST_FAIL_LIMITint5Количество последовательных failure'ов remote_write, при котором срабатывает prom_ingest_fail.

Уведомления

Главный переключатель + четыре встроенных типа каналов. Каналы, созданные через UI, несут свой собственный enabled-флаг и не затрагиваются этими.

ПеременнаяТипПо умолчаниюОписание
ONGRID_NOTIFY_ENABLEDbooltrueГлавный переключатель исходящих уведомлений.
ONGRID_NOTIFY_DEFAULT_CHANNELScsvemptyУпорядоченный список имён каналов, используемый, когда вызывающий не указывает destination'ы.
ONGRID_NOTIFY_TIMEOUTduration10sPer-channel timeout отправки.
ONGRID_NOTIFY_WEBHOOK_ENABLEDboolfalseВключить webhook-канал, настроенный env'ом.
ONGRID_NOTIFY_WEBHOOK_NAMEstringwebhookОтображаемое имя.
ONGRID_NOTIFY_WEBHOOK_URLstringemptyPOST endpoint.
ONGRID_NOTIFY_WEBHOOK_SECRETstringemptyОпциональный HMAC secret.
ONGRID_NOTIFY_SLACK_ENABLEDboolfalseВключить Slack-канал, настроенный env'ом.
ONGRID_NOTIFY_SLACK_NAMEstringslackОтображаемое имя.
ONGRID_NOTIFY_SLACK_WEBHOOK_URLstringemptyURL Incoming Webhook.
ONGRID_NOTIFY_FEISHU_ENABLEDboolfalseВключить Larksuite / Feishu канал, настроенный env'ом.
ONGRID_NOTIFY_FEISHU_NAMEstringfeishuОтображаемое имя.
ONGRID_NOTIFY_FEISHU_WEBHOOK_URLstringemptyCustom-Bot URL.
ONGRID_NOTIFY_FEISHU_SECRETstringemptyПодписной secret.
ONGRID_NOTIFY_DINGTALK_ENABLEDboolfalseВключить DingTalk канал, настроенный env'ом.
ONGRID_NOTIFY_DINGTALK_NAMEstringdingtalkОтображаемое имя.
ONGRID_NOTIFY_DINGTALK_WEBHOOK_URLstringemptyCustom-Bot URL.
ONGRID_NOTIFY_DINGTALK_SECRETstringemptyПодписной secret.

Для каналов WeCom и Telegram создавайте их через UI Settings → Channels — они first-class, но не имеют env-shortcut'а конфигурации.


Bootstrap admin

ПеременнаяТипПо умолчаниюОписание
ONGRID_ADMIN_EMAILstringemptyEmail bootstrap-админа. Если пусто, admin не seed'ится; вы должны зарегистрироваться из UI при первом boot.
ONGRID_ADMIN_PASSWORDstringemptyНачальный пароль. Ожидается, что оператор сменит его при первом входе.

Edge-агент

Они потребляются ongrid-edge, записываются в /etc/ongrid-edge/ongrid-edge.env инсталлером.

ПеременнаяТипПо умолчаниюОписание
ONGRID_EDGE_CLOUD_ADDRstring127.0.0.1:40012host:port frontier-брокера. Агент дозванивается с TLS.
ONGRID_EDGE_ACCESS_KEYstringemptyPer-edge access-ключ. Выдаётся manager'ом, когда вы создаёте edge в UI.
ONGRID_EDGE_SECRET_KEYstringemptyСоответствующий secret. Показывается один раз при создании edge; ротируется через UI.
ONGRID_EDGE_COLLECTOR_MODEstringoffoff (по умолчанию; плагины hostmetrics + procmetrics обрабатывают метрики), auto (legacy embedded + scraper), embedded (только embedded push), scrape (multi-target HTTP scraper).
ONGRID_EDGE_SCRAPE_CONFIG_FILEstring/etc/ongrid-edge/scrape.yamlПуть к YAML-конфигу scrape. Консультируется только когда COLLECTOR_MODE=scrape.
ONGRID_EDGE_COLLECTOR_INTERVALduration10sКак часто embedded collector делает snapshot. Scrape-режим игнорирует это.
ONGRID_EDGE_PLUGIN_BIN_DIRstring/usr/local/lib/ongrid-edgeДиректория, содержащая бинари плагинов (promtail, otelcol-contrib, node_exporter, process_exporter).
ONGRID_EDGE_PLUGIN_WORK_DIRstring/var/lib/ongrid-edge/pluginsPer-plugin runtime-директории (configs, PID-файлы, queue spool).
ONGRID_EDGE_UPGRADE_STAGE_DIRstring/var/lib/ongrid-edge/.upgradeДиректория staged-bundle ADR-024. Пустое отключает удалённые whole-bundle апгрейды.
ONGRID_INSTALL_WAITint20Секунд, в течение которых curl-pipe инсталлер опрашивает journal в ожидании "registered with cloud".

Embedding & RAG

ПеременнаяТипПо умолчаниюОписание
ONGRID_EMBEDDING_PROVIDERstringzhipuzhipu (по умолчанию; вызывает GLM embedding API), local (использует on-disk bge-модель), openai (использует OpenAI embeddings).
ONGRID_EMBEDDING_LOCAL_MODEL_PATHstringemptyАбсолютный путь к локальной модели, когда PROVIDER=local. Release-tarball выкладывает bge-base-en-v1.5 под .cache/.
ONGRID_VAULT_REPO_URLstringhttps://github.com/ongridio/vaultUpstream vault-репозиторий, из которого manager подтягивает baseline-знания. Переопределите для air-gapped зеркал.

Locale & разное

ПеременнаяТипПо умолчаниюОписание
ONGRID_DEFAULT_LOCALEstringenLocale по умолчанию, используемая автоматическими LLM-выводами (расследования алертов, scheduled summary'и). UI-триггерный chat использует UI-locale пользователя вместо этой.

См. также

  • REST API — эндпоинты, которые эти env-переменные связывают.
  • CLI — флаги командной строки двух бинарей.
  • Плоскость данных телеметрии — почему эндпоинты логов/трейсов отличаются от туннеля.
  • Архитектура — где каждая env-переменная живёт в диаграмме стека.