Orchestration Moteur local

goOn est le moteur d’orchestration local : il exécute les tâches, les projets, les agents et les productions sur votre machine, et expose une API REST utilisée par Yapuka Code et Yapuka Studio.

Présentation

goOn est un service écrit en Go qui tourne en tâche de fond sur chaque machine. C’est le seul backend de l’écosystème Yapuka : les applications de bureau ne font que lui parler. Il garde ses données en local, dans ~/.config/goon/ (base SQLite, configuration, cache des marques).

  • Tâches : déclenchées à la main, par planification (cron), par un fichier modifié ou par un webhook.
  • Projets et missions : un projet regroupe des missions découpées en sous-tâches, chacune avec un rôle (architecte, relecteur…) et une estimation.
  • Agents : les sous-tâches sont confiées à des agents IA (par exemple Claude Code) qui travaillent dans les dossiers et dépôts Git du projet, sur des branches dédiées.
  • Productions : les livrables créatifs pilotés depuis Yapuka Studio.

Comment fonctionne une exécution

Chaque exécution suit le même pipeline :

  1. un déclencheur lance la tâche ;
  2. les hooks préalables s’exécutent et peuvent annuler ou ignorer l’exécution ;
  3. l’exécuteur réalise le travail (commande shell, appel HTTP, chaîne de tâches, agent IA) ;
  4. les hooks finaux s’exécutent toujours, même après un échec ;
  5. le résultat et les journaux sont enregistrés dans la base locale.

Les exécuteurs, déclencheurs et hooks sont des plugins : on étend goOn sans toucher à son cœur.

Installation et service

goOn est livré avec Yapuka Code, qui le démarre automatiquement. Pour l’utiliser seul, installez-le comme service système :

goon daemon install    # installe et démarre le service
goon daemon status     # vérifie qu’il tourne
goon daemon restart    # redémarre après un changement de configuration

La configuration se trouve dans ~/.config/goon/config.yaml et les définitions de tâches dans ~/.config/goon/tasks.yaml.

Ligne de commande

CommandeRôle
goon serveLance le serveur au premier plan
goon listListe les tâches déclarées
goon run <tâche>Exécute une tâche immédiatement
goon logs <exécution>Affiche les journaux d’une exécution
goon pluginsListe les plugins chargés
goon brands import <dossier>Importe un paquet de marque dans le cache local

API REST

L’API écoute sur http://localhost:18080, en JSON. Chaque requête doit porter la clé locale, lue dans ~/.config/goon/api_key, dans l’en-tête X-API-Key.

MéthodeCheminRôle
GET/healthÉtat du service
GET/api/v1/tasksListe des tâches
POST/api/v1/tasks/{id}/runLance une tâche
GET/api/v1/runsHistorique des exécutions (paginé)
GET/api/v1/runs/{id}/logsJournaux en direct (SSE)
GET/api/v1/projectsProjets, missions et sous-tâches
GET/api/v1/pluginsPlugins disponibles
curl -H "X-API-Key: $(cat ~/.config/goon/api_key)" \
  http://localhost:18080/api/v1/tasks

Ne versionnez jamais la clé et n’exposez pas le port 18080 sur le réseau : l’API est prévue pour la machine locale.

Pour aller plus loin

goOn fonctionne seul, mais il peut aussi rejoindre Maestro pour partager le travail entre plusieurs machines. Pour le piloter avec une interface, utilisez Yapuka Code (développement) ou Yapuka Studio (production créative).