name, a source, and at least one entry in actions. title and description are labels for the dashboard, and enabled defaults to true when omitted. A template may declare up to 256 triggers.
Sources
A source’stype selects which fields apply.
A
cron schedule has no seconds field, and when it restricts both day-of-month and day-of-week, both must match. An http source fires on every poll that returns expect_code, so with the defaults a healthy URL fires every 30 seconds. A metric source fires again every duration while the condition holds. To emit a custom event, append a JSON line with a name field to /var/lib/orgo/events.jsonl, for example {"name": "deploy.done"}. A trigger whose event matches that name fires. The line that creates the file is not read, so create the file first, for example with touch /var/lib/orgo/events.jsonl in build.run.
Metric sources cover cpu_percent, ram_percent, disk_percent, net_in_mbps, and net_out_mbps, compared with >, >=, <, <=, ==, or !=.
Actions
A trigger runs one or more actions in order. Thetype selects the fields.
String fields such as
url, body, headers, run, title, message, and endpoint expand four placeholders: {{trigger}} (the trigger name), {{source}} (the source type), {{time}} (RFC 3339), and {{data.KEY}} (a field of the event, such as {{data.path}} for a file source). Write them without inner spaces; {{ data.path }} is left as is.
Dedup
Bursty sources can fire constantly. Add at most one dedup strategy per trigger.
Independent of
dedup, a trigger fires at most 120 times a minute.
Triggers vs. health checks
They complement each other:- A health check is a per-app watchdog. It probes one URL, port, command, or process and can restart a service when the probe keeps failing (
on_fail: restart_service:…). - A trigger is general automation: any source to any action, across the whole computer.
Next steps
Schema reference
Every source and action field.
Examples
Triggers in real templates.