Skip to content

Notifications

Envoryx usually runs on a machine you don’t look at all day. Notifications make sure you still hear about it when a project falls over or a backup fails. You set them up under Settings → Notifications: pick a channel, choose which events you care about, and send a test to see that it arrives.

The Notifications settings with ntfy as the channel, its topic URL and the list of events to be told aboutThe Notifications settings with ntfy as the channel, its topic URL and the list of events to be told about

Envoryx can reach you over ntfy, a Discord webhook, a Slack webhook, a Telegram bot, e-mail via SMTP, or a generic webhook with a JSON body if you want to wire it into something of your own. For e-mail with authentication the server has to speak STARTTLS or TLS - Envoryx won’t send your password in the clear.

The generic webhook gets a POST with Content-Type: application/json and User-Agent: Envoryx. The body is flat, so a small script can pick it apart without guessing:

{
"kind": "backup.failed",
"level": "error",
"title": "…",
"message": "…",
"project": "Shop",
"time": "2026-10-07T13:40:12Z"
}

kind is a stable key such as backup.failed or branch.changed, level is info, warning or error, and project stays empty for events that aren’t about one project. A failed offsite upload of a project backup does name its project, even when the project has been deleted since.

The secrets for all of these live in /config/notify.json (mode 0600), encrypted with the secret key, and never go back to the browser.

Event When
Project stopped or broken a project that should be running is not - and again when it recovers
Application down the health check fails three times in a row - and when it answers again
Out of memory a container reached its memory limit and a process was killed
Project creation failed
Backup failed a manual, scheduled or offsite backup failed
Cron job failed a cron run failed or timed out
Branch environment failed a branch environment could not be created or its deploy failed
Branch environment changed a branch environment was created, deleted along with its branch, or stopped for being idle
Low disk space /config, /projects or /backups below 2 GiB or 5 % free - and when it recovers
Orphans removed Envoryx removed leftover containers or networks on its own
Projects resumed Envoryx started projects again after its own restart
Let’s Encrypt renewal failed or succeeded
Envoryx started / failed a start, or a refused start (corrupt database, network filesystem, failed migration) and crashed background tasks

Everything is on by default except Let’s Encrypt renewed, Envoryx started and Branch environment changed - those are good news or routine, and that gets old quickly.

So your phone doesn’t buzz every minute, repeats are throttled: an unhealthy project reports once every 6 hours, a failed renewal once a day. The message about a failed start is special: it doesn’t need Envoryx’s database, only the channel in /config/notify.json. That way it reaches you precisely when Envoryx can’t open its database. There’s one gap: notify.json is sealed with the secret key, so a start refused because the key is wrong or missing can’t send anything. The container then restarts in a loop without a word, so if you rely on alerts, have your container monitoring watch for restart loops too. The log says which key ID Envoryx expects.

When an update brings a new kind of event, it follows its default until you save your event selection again. A new alarm is never quietly switched off just because it didn’t exist when you last saved.