Add per-node action groups with schedules, runs, and logs.

Let operators manage ordered action groups on each host, run them manually or on a schedule over SSH, and inspect disk-backed JSON run logs from a node detail UI.
This commit is contained in:
2026-07-19 20:01:11 +02:00
parent 50568127c5
commit 32af91fd30
22 changed files with 4337 additions and 32 deletions
+6 -1
View File
@@ -36,9 +36,10 @@ func main() {
listenHost := settings.ListenHost(configDir)
listenAddr := listenHost + ":" + port
handler, app := api.NewRouterWithApp(configDir)
server := &http.Server{
Addr: listenAddr,
Handler: api.NewRouter(configDir),
Handler: handler,
ReadHeaderTimeout: 5 * time.Second,
}
@@ -53,6 +54,10 @@ func main() {
signal.Notify(stopSignals, syscall.SIGINT, syscall.SIGTERM)
<-stopSignals
if app.Executor != nil {
app.Executor.StopScheduler()
}
shutdownContext, cancel := context.WithTimeout(context.Background(), 10*time.Second)
defer cancel()