Variables d'environnement
Les deux ongrid et ongrid-edge sont configurés exclusivement via variables d'environnement. Pas de YAML. Le câblage canonique vit dans internal/pkg/config/config.go et le bloc env compose à deploy/docker-compose.yml. Chaque variable ci-dessous est lue au démarrage ; le manager ne hot-reload pas.
Les tableaux groupent les variables par sous-système. Les défauts affichés sont ce que le binaire choisit quand la variable est non posée ou vide. « Requis » signifie « la feature dans la colonne 1 ne marchera pas sans ».
Listeners HTTP & métriques
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_HTTP_ADDR | string | :8080 | Listen TCP pour l'API + SPA. nginx dans la stack compose proxify /api/* ici. |
ONGRID_METRICS_ADDR | string | :9100 | Listen TCP pour /metrics. Scrapé par Prometheus. |
ONGRID_TUNNEL_ADDR | string | :40012 | Listen de broker geminio. Bindé par le service frontier, pas le manager lui-même. |
ONGRID_PUBLIC_URL | string | vide | URL https://... canonique que le manager donne aux edges comme endpoint de plan de données (ingest logs/traces, téléchargement de bundle edge). Vide désactive les endpoints de plugin de plan de données. Posez ceci en production. |
Base de données (MySQL par défaut, SQLite opt-in)
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_DB_DIALECT | string | mysql | mysql (défaut) ou sqlite. Vide est traité comme mysql. |
ONGRID_DB_DSN | string | ongrid:ongrid@tcp(127.0.0.1:3306)/ongrid?parseTime=true&charset=utf8mb4&loc=Local | DSN MySQL. Requis en production. |
ONGRID_DB_PATH | string | ./data/ongrid.db | Chemin du fichier de base SQLite. :memory: est accepté en tests. |
JWT (iam)
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_JWT_SECRET | string | dev-insecure-secret-change-me | Clé de signature HS256 pour les tokens access + refresh. Requis ; le défaut refuse d'émettre des tokens dans les builds de production. |
ONGRID_JWT_ACCESS_TTL | duration | 15m | TTL d'access-token. |
ONGRID_JWT_REFRESH_TTL | duration | 168h (7j) | TTL de refresh-token. |
Les durations acceptent la syntaxe Go time.ParseDuration (15m, 2h, 30s). Un entier nu est interprété comme secondes.
Providers LLM
L'agent de chat supporte six providers de première classe plus un slot Custom (compatible OpenAI). Chaque provider est gaté par sa clé d'API — clé vide = provider non remonté au picker de chat.
OpenAI
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_OPENAI_API_KEY | string | vide | Clé d'API OpenAI. Vide = OpenAI caché du picker. |
ONGRID_OPENAI_MODEL | string | gpt-5.4 | Modèle par défaut quand OpenAI est le provider sélectionné. |
ONGRID_OPENAI_BASE_URL | string | vide | Surcharge l'URL de base pour les relais compatibles OpenAI (Azure / vLLM / Ollama / one-api). |
Anthropic, Zhipu, Gemini, DeepSeek, Kimi
Chaque provider a les mêmes trois clés (clé API / modèle par défaut / URL de base) et une quatrième (MODELS, liste séparée par virgules de slugs de modèles sélectionnables) :
| Variable | Défaut |
|---|---|
ONGRID_ANTHROPIC_API_KEY | vide |
ONGRID_ANTHROPIC_MODEL | claude-sonnet-4-6 |
ONGRID_ANTHROPIC_BASE_URL | vide |
ONGRID_ANTHROPIC_MODELS | claude-opus-4-7,claude-sonnet-4-6,claude-haiku-4-5 |
ONGRID_ZHIPU_API_KEY | vide |
ONGRID_ZHIPU_MODEL | glm-4.7 |
ONGRID_ZHIPU_BASE_URL | vide |
ONGRID_ZHIPU_MODELS | glm-5.1,glm-5,glm-4.7,glm-4.7-flash |
ONGRID_GEMINI_API_KEY | vide |
ONGRID_GEMINI_MODEL | gemini-2.5-pro |
ONGRID_GEMINI_BASE_URL | vide |
ONGRID_GEMINI_MODELS | gemini-3.5-flash,gemini-2.5-pro,gemini-2.5-flash |
ONGRID_DEEPSEEK_API_KEY | vide |
ONGRID_DEEPSEEK_MODEL | deepseek-v4-flash |
ONGRID_DEEPSEEK_BASE_URL | vide |
ONGRID_DEEPSEEK_MODELS | deepseek-v4-pro,deepseek-v4-flash,deepseek-reasoner |
ONGRID_KIMI_API_KEY | vide |
ONGRID_KIMI_MODEL | kimi-k2.6 |
ONGRID_KIMI_BASE_URL | vide |
ONGRID_KIMI_MODELS | kimi-k2.6,kimi-k2.5,moonshot-v1-128k |
Routing & budget
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_LLM_DEFAULT_PROVIDER | string | vide | Provider utilisé quand une requête n'en spécifie pas. Vide = premier provider configuré (alphabétique). Posez ceci quand vous voulez un provider spécifique comme défaut du site. |
ONGRID_LLM_DAILY_TOKEN_LIMIT | int | 0 | Plafond global de tokens par jour UTC. 0 = illimité. |
Kernel d'agent & outils
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_AGENT_KERNEL | string | graph | graph active le kernel de graphe eino + filtre de mot-clé d'activation SkillRegistry.Resolve + pipeline de deferral ToolBag. legacy est le runner for-loop plus ancien avec tous les outils toujours full-schema. Basculez vers legacy seulement pour bisecter. |
ONGRID_TOOLBAG_DEFERRAL_THRESHOLD | int | 30 | Seuil de compte d'outils au-dessus duquel les outils de tier specialty reçoivent des schémas redacted (le LLM doit appeler ToolSearch pour expand). |
ONGRID_SKILLS_EXTERNAL_DIRS | csv | vide | Chemins absolus séparés par virgule/deux-points que le loader de skills scanne pour des manifestes skill.json. Chacun doit être absolu ; les entrées relatives ou manquantes sont sautées avec une ligne de log. |
Client broker Frontier
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_FRONTIER_ADDR | string | frontier:40011 | Listen service-bound du broker frontier upstream que le manager compose. |
ONGRID_FRONTIER_SERVICE_NAME | string | ongrid-manager | Identifiant rapporté à la connexion. |
ONGRID_FRONTIER_DISABLED | bool | false | Saute le dial service-end longue durée entièrement. Utilisé par le harness e2e — les features nécessitant le broker (webssh, appels inversés d'edge) errent au site d'appel. |
Prometheus côté cloud
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_PROM_ENABLED | bool | false | Gate le câblage Prometheus. Quand false, le manager tourne sans store de métriques ; push_prom_samples drop silencieusement, et query_promql n'est pas enregistré comme outil. |
ONGRID_PROM_URL | string | http://prometheus:9090 | URL racine du serveur Prom. |
ONGRID_PROM_REMOTE_WRITE_URL | string | vide | Endpoint remote_write exact quand l'upstream n'est pas raciné à /api/v1/write (Mimir / Cortex / gateway VictoriaMetrics). |
ONGRID_PROM_QUERY_URL | string | vide | Racine d'API de requête pour query_promql. Vide retombe sur ONGRID_PROM_URL. |
ONGRID_PROM_TLS_INSECURE | bool | false | Saute la vérification de cert TLS. |
ONGRID_PROM_TLS_CA_FILE | string | vide | Fichier PEM avec la CA racine utilisée pour vérifier le cert du TSDB. Vide = racines système. |
Grafana
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_GRAFANA_INTERNAL_URL | string | http://grafana:3000/grafana | URL que le manager utilise pour atteindre Grafana sur le réseau docker. |
ONGRID_GRAFANA_BOOTSTRAP_USER | string | admin | Utilisateur admin one-time utilisé pour auto-créer le Service Account ongrid + token. |
ONGRID_GRAFANA_BOOTSTRAP_PASSWORD | string | vide | Mot de passe bootstrap ; vide désactive le bootstrap (collez un token SA créé manuellement dans l'UI). |
ONGRID_GRAFANA_TLS_INSECURE | bool | false | Saute la vérification de cert pour l'appel bootstrap. |
ONGRID_GRAFANA_ROOT_URL | string | %(protocol)s://%(domain)s/grafana/ | Forwarded vers GF_SERVER_ROOT_URL. |
Logs & traces (plan de données)
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_LOG_QUERY_URL | string | http://loki:3100 | Racine d'API Loki à laquelle le manager parle pour query_range / labels / values. Vide = la page Logs renvoie 503. |
ONGRID_TRACE_QUERY_URL | string | http://tempo:3200 | Racine du listener HTTP Tempo pour /api/search, /api/traces/<id>, /api/search/tag/<tag>/values. Vide = la page Traces renvoie 503. |
Les endpoints de plan de données edge (où les plugins logs / traces POST) sont dérivés de ONGRID_PUBLIC_URL ; voir Plan de données de télémétrie.
Seuils d'alerte intégrés
Ceux-ci pilotent les quatre règles intégrées canoniques sur l'ensemble fermé de métriques host. Posez à 0 pour désactiver.
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_ALERT_ENABLED | bool | true | Interrupteur maître pour l'évaluation d'alerte host intégrée. |
ONGRID_ALERT_COOLDOWN | duration | 10m | Cooldown par-(edge, règle). Les notifications à l'intérieur de cette fenêtre sont supprimées. |
ONGRID_ALERT_CPU_PERCENT | float | 90 | Part quand cpu_pct >= threshold. |
ONGRID_ALERT_MEM_PERCENT | float | 90 | Part quand mem_pct >= threshold. |
ONGRID_ALERT_DISK_USED_PERCENT | float | 90 | Part quand disk_used_pct >= threshold. |
ONGRID_ALERT_LOAD1 | float | 0 | Part quand load1 >= threshold. 0 désactive (le load varie trop largement à travers les formes d'host pour un défaut utile). |
ONGRID_ALERT_EVAL_INTERVAL | duration | 5m | Fréquence à laquelle l'evaluator du pipeline scanne les edges et interroge Prom. |
ONGRID_ALERT_EDGE_OFFLINE_THRESHOLD | duration | 90s | Stale-ness de heartbeat au-dessus de laquelle un edge compte comme offline. |
ONGRID_ALERT_PROM_INGEST_FAIL_LIMIT | int | 5 | Compte consécutif d'échecs remote_write auquel prom_ingest_fail part. |
Notifications
Interrupteur maître + les quatre types de canal intégrés. Les canaux créés par UI portent leur propre flag enabled et ne sont pas affectés par ceux-ci.
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_NOTIFY_ENABLED | bool | true | Interrupteur maître pour les notifications sortantes. |
ONGRID_NOTIFY_DEFAULT_CHANNELS | csv | vide | Liste ordonnée de noms de canaux utilisée quand un caller ne spécifie pas de destinations. |
ONGRID_NOTIFY_TIMEOUT | duration | 10s | Timeout d'envoi par canal. |
ONGRID_NOTIFY_WEBHOOK_ENABLED | bool | false | Active le canal webhook configuré par env. |
ONGRID_NOTIFY_WEBHOOK_NAME | string | webhook | Nom d'affichage. |
ONGRID_NOTIFY_WEBHOOK_URL | string | vide | Endpoint POST. |
ONGRID_NOTIFY_WEBHOOK_SECRET | string | vide | Secret HMAC optionnel. |
ONGRID_NOTIFY_SLACK_ENABLED | bool | false | Active le canal Slack configuré par env. |
ONGRID_NOTIFY_SLACK_NAME | string | slack | Nom d'affichage. |
ONGRID_NOTIFY_SLACK_WEBHOOK_URL | string | vide | URL de Webhook entrant. |
ONGRID_NOTIFY_FEISHU_ENABLED | bool | false | Active le canal Larksuite / Feishu configuré par env. |
ONGRID_NOTIFY_FEISHU_NAME | string | feishu | Nom d'affichage. |
ONGRID_NOTIFY_FEISHU_WEBHOOK_URL | string | vide | URL Custom-Bot. |
ONGRID_NOTIFY_FEISHU_SECRET | string | vide | Secret de signature. |
ONGRID_NOTIFY_DINGTALK_ENABLED | bool | false | Active le canal DingTalk configuré par env. |
ONGRID_NOTIFY_DINGTALK_NAME | string | dingtalk | Nom d'affichage. |
ONGRID_NOTIFY_DINGTALK_WEBHOOK_URL | string | vide | URL Custom-Bot. |
ONGRID_NOTIFY_DINGTALK_SECRET | string | vide | Secret de signature. |
Pour les canaux WeCom et Telegram, créez-les via l'UI Settings → Channels — ils sont de première classe mais n'ont pas de raccourci de configuration env.
Admin bootstrap
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_ADMIN_EMAIL | string | vide | Email de l'admin bootstrap. Si vide, aucun admin n'est seedé ; vous devez vous enregistrer depuis l'UI au premier boot. |
ONGRID_ADMIN_PASSWORD | string | vide | Mot de passe initial. L'opérateur est censé le changer au premier login. |
Agent edge
Ceux-ci sont consommés par ongrid-edge, écrits dans /etc/ongrid-edge/ongrid-edge.env par l'installer.
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_EDGE_CLOUD_ADDR | string | 127.0.0.1:40012 | Broker frontier host:port. L'agent compose ceci avec TLS. |
ONGRID_EDGE_ACCESS_KEY | string | vide | Clé d'accès par-edge. Émise par le manager quand vous créez un edge dans l'UI. |
ONGRID_EDGE_SECRET_KEY | string | vide | Secret matchant. Affiché une fois à la création d'edge ; rotatez via l'UI. |
ONGRID_EDGE_COLLECTOR_MODE | string | off | off (défaut ; les plugins hostmetrics + procmetrics gèrent les métriques), auto (legacy embarqué + scraper), embedded (push embarqué seulement), scrape (scraper HTTP multi-cible). |
ONGRID_EDGE_SCRAPE_CONFIG_FILE | string | /etc/ongrid-edge/scrape.yaml | Chemin vers le YAML de config scrape. Consulté seulement quand COLLECTOR_MODE=scrape. |
ONGRID_EDGE_COLLECTOR_INTERVAL | duration | 10s | Fréquence à laquelle le collecteur embarqué snapshot. Le mode scrape ignore ceci. |
ONGRID_EDGE_PLUGIN_BIN_DIR | string | /usr/local/lib/ongrid-edge | Répertoire contenant les binaires de plugin (promtail, otelcol-contrib, node_exporter, process_exporter). |
ONGRID_EDGE_PLUGIN_WORK_DIR | string | /var/lib/ongrid-edge/plugins | Dirs runtime par plugin (configs, fichiers PID, spool de file). |
ONGRID_EDGE_UPGRADE_STAGE_DIR | string | /var/lib/ongrid-edge/.upgrade | Répertoire de bundle staged ADR-024. Vide désactive les upgrades distantes de bundle entier. |
ONGRID_INSTALL_WAIT | int | 20 | Secondes que l'installer curl-pipe sonde le journal en attendant « registered with cloud ». |
Embedding & RAG
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_EMBEDDING_PROVIDER | string | zhipu | zhipu (défaut ; appelle l'API d'embedding GLM), local (utilise un modèle bge sur disque), openai (utilise les embeddings OpenAI). |
ONGRID_EMBEDDING_LOCAL_MODEL_PATH | string | vide | Chemin absolu vers le modèle local quand PROVIDER=local. Le tarball de release stage bge-base-en-v1.5 sous .cache/. |
ONGRID_VAULT_REPO_URL | string | https://github.com/ongridio/vault | Dépôt vault upstream depuis lequel le manager tire les connaissances baseline. Surchargez pour les mirrors air-gappés. |
Locale & divers
| Variable | Type | Défaut | Description |
|---|---|---|---|
ONGRID_DEFAULT_LOCALE | string | en | Locale par défaut utilisée par les sorties LLM automatiques (investigations d'alerte, résumés planifiés). Le chat déclenché par UI utilise la locale UI de l'utilisateur à la place. |
Voir aussi
- API REST — endpoints que ces variables d'env câblent.
- CLI — flags de ligne de commande des deux binaires.
- Plan de données de télémétrie — pourquoi les endpoints log/trace diffèrent du tunnel.
- Architecture — où chaque variable d'env vit dans le schéma de stack.