CLI
Ongrid livre deux binaires :
ongrid— le manager cloud. Tourne à l'intérieur du conteneur manager.ongrid-edge— l'agent edge. Tourne comme service systemd sur les hosts Linux.
Les deux sont conçus pour être configurés via variables d'environnement (Variables d'environnement), pas via flags. La surface CLI est intentionnellement minuscule — juste assez pour afficher la version et un résumé d'aide. Tout ce qui ressemble à un flag dans des déploiements de production a probablement été posé comme env ONGRID_* dans /etc/ongrid-edge/ongrid-edge.env ou deploy/docker-compose.yml.
ongrid (manager)
Lit chaque variable d'env ONGRID_* que le binaire reconnaît, ouvre ses listeners, et tourne jusqu'à SIGINT / SIGTERM. Il n'y a pas d'arguments requis et pas de sous-commandes.
Flags
Le manager n'expose pas de flags documentés. La seule gestion d'argv est celle du runtime Go standard : tout flag inconnu est ignoré. Les flags d'outillage ops futurs (forcer les migrations, dumper la config, regénérer l'admin bootstrap) sont trackés sous le label ops sur GitHub.
Modèle de processus
ongrid
├─ HTTP listener on $ONGRID_HTTP_ADDR (:8080)
├─ /metrics listener on $ONGRID_METRICS_ADDR (:9100)
├─ geminio service-end SDK dial to $ONGRID_FRONTIER_ADDR (frontier:40011)
├─ alert evaluator goroutine (interval $ONGRID_ALERT_EVAL_INTERVAL)
├─ DB pool sampler (10s tick)
└─ background investigators (one goroutine per investigation request)Santé
curl http://localhost:8080/healthz # always 200 once the server is up
curl http://localhost:8080/readyz # 200 when DB + frontier dial are healthyArrêter / redémarrer
docker compose -f deploy/docker-compose.yml restart ongrid
docker compose -f deploy/docker-compose.yml down
docker compose -f deploy/docker-compose.yml up -dShutdown gracieux : le manager câble SIGINT / SIGTERM au contexte racine de son errgroup. Toutes les goroutines stoppent sur context cancel ; les requêtes HTTP en vol ont jusqu'à 10 secondes pour finir.
ongrid-edge (agent)
Le binaire edge supporte deux flags avant que toute startup driven par env n'ait lieu. Ils sont gérés tout en haut de main() pour qu'ils affichent et sortent même sur un host mal configuré.
| Flag | Alias | Comportement |
|---|---|---|
--version | -v | Affiche ongrid-edge <version> et exit 0. |
--help | -h | Affiche ongrid-edge <version> plus un hint d'une ligne sur la configuration systemd, puis exit 0. |
Verbatim depuis cmd/ongrid-edge/main.go :
$ ongrid-edge --version
ongrid-edge v0.7.167
$ ongrid-edge --help
ongrid-edge v0.7.167
Run as a systemd service. See /etc/ongrid-edge/ongrid-edge.env for config.Il n'y a pas de flag --config /path. Chaque setting vient de l'environnement. L'unit systemd charge /etc/ongrid-edge/ongrid-edge.env via EnvironmentFile= ; pour les runs ad-hoc (dev sur macOS, debugging) vous les posez dans votre shell.
Env requis pour démarrer
L'agent va booter peu importe, mais il ne peut faire un travail utile qu'une fois ces trois posés :
export ONGRID_EDGE_CLOUD_ADDR=ongrid.example.com:40012
export ONGRID_EDGE_ACCESS_KEY=<from manager UI>
export ONGRID_EDGE_SECRET_KEY=<from manager UI>Modèle de processus
ongrid-edge
├─ tunnel dial to $ONGRID_EDGE_CLOUD_ADDR
├─ /metrics + /healthz listener on :9101 (localhost)
├─ embedded collector (gopsutil)
├─ plugin supervisor (subprocess promtail / otelcol-contrib / node_exporter / process-exporter)
├─ skill dispatcher (handles execute_skill RPCs from manager)
└─ webshell port-forwarder (handles open_shell RPCs from manager)L'agent ne fork pas. Les plugins sont des processus enfants de première classe gérés par le superviseur in-process ; si un plugin crash, le superviseur le redémarre avec backoff exponentiel et rapporte l'échec au prochain heartbeat (visible dans la page Edges comme health.last_error).
Arrêter / redémarrer
sudo systemctl restart ongrid-edge
sudo systemctl stop ongrid-edge
sudo systemctl status ongrid-edge
journalctl -u ongrid-edge -fDésinstaller
# from a running edge:
curl -k -sSL https://<manager>/install.sh | sudo bash -s -- --uninstallRetire le binaire, le fichier env, l'unit systemd, les binaires de plugin sous /usr/local/lib/ongrid-edge/, mais préserve /var/log/ongrid-edge/.
Flags de debug via env
Ceux-ci n'ont pas de flags CLI mais sont assez utiles à connaître :
| Variable | Effet |
|---|---|
ONGRID_LOG_LEVEL=debug | bascule slog en debug ; double le volume de log de heartbeat |
ONGRID_EDGE_PLUGIN_BIN_DIR=... | surcharge le répertoire de binaires de plugin (défaut /usr/local/lib/ongrid-edge) |
ONGRID_EDGE_PLUGIN_WORK_DIR=... | surcharge les dirs runtime des plugins (défaut /var/lib/ongrid-edge/plugins) |
ONGRID_EDGE_UPGRADE_STAGE_DIR="" | désactive le staging de bundle entier ADR-024 (poser vide) |
NO_COLOR=1 | retire les codes ANSI de la sortie install.sh (utilisé par l'installer, pas l'agent) |
install.sh (l'installer curl-pipe)
Techniquement pas un binaire, mais il a un CLI qui vaut la peine d'être documenté. Usage :
curl -k -sSL https://<manager>/install.sh | sudo bash -s -- \
--access-key=KEY \
--secret-key=SECRET \
--server-edge-addr=<host>:40012 \
--server-http-addr=<host>:443Flags
| Flag | Requis | Description |
|---|---|---|
--access-key=KEY | oui (install) | clé d'accès par-edge (depuis l'UI manager) |
--secret-key=SECRET | oui (install) | secret matchant |
--server-edge-addr=HOST:PORT | oui (install) | endpoint de tunnel (broker frontier) |
--server-http-addr=HOST[:PORT] | oui (install) | porte d'entrée nginx ; utilisé pour téléchargements de binaires et self-check |
--uninstall | non | arrêter et retirer l'agent (préserve /var/log/ongrid-edge/) |
-h, --help | non | afficher usage |
Env qu'il lit
| Variable | Défaut | Effet |
|---|---|---|
ONGRID_INSTALL_WAIT | 20 | secondes à attendre que l'agent logge « registered with cloud » avant de déclarer succès |
NO_COLOR | non posé | désactiver les couleurs ANSI |
Codes de sortie
0— installé et enregistré (ou désinstallé).1— install complétée mais enregistrement n'a pas eu lieu (réseau, mauvaises clés) ; utilisezjournalctl -u ongrid-edge -fpour diagnostiquer.2— mauvaise invocation (flag requis manquant).
Voir aussi
- Variables d'environnement — la vraie surface de configuration.
- Linux (edge) — détails de l'unit systemd, ce que l'installer dépose sur disque.
- API REST — la surface que le manager expose aux clients.