Notifications
Every service sends its events to notify: deploys, crashes, incidents, backups,
errors, sign-ins. notify delivers them to the channels people and teams subscribed.
Connect a channel
In notify → Channels:
- Telegram: press Link, open the instance's bot and send it the
/start code. Messages come in
your language with icons; /mute, /subs and /status work in the chat.
- Web Push: allow notifications in the browser.
- E-mail: the instance's SMTP (
SMTP_URL, often the mail service).
- Webhook: a URL that gets JSON, signed with HMAC-SHA256 in
X-Xvii-Signature. Private addresses are
refused unless the instance allows them.
Send a test to every channel you add.
Subscribe
A subscription connects a channel to services, teams, topics and a minimum severity. Useful ones:
| Event |
From |
app.deploy_failed, app.crashed, cron.failed |
apps |
deploy.failed |
pages |
monitor.down, heartbeat.missed, certificate.expiring |
status |
issue.new, issue.regressed |
errors |
backup.failed, backup.verify_failed |
backups |
zone.dnssec_mismatch, nameserver.stale |
domains |
Avoid one catch-all subscription: important alerts drown in routine activity. Quiet hours hold
non-critical messages; digests bundle them; repeats of the same event are folded. Acknowledge
stops the repeats of an incident (xvii notify ack <seq>).
Topics: your own events
A topic takes posts from scripts and CI with any token of its team:
xvii notify topic backups --team ops --description "Nightly backups"
xvii notify send backups "Nightly backup done: 12 GB"
df -h | xvii notify send disk --title "Disk usage"
Or with curl:
curl -H "Authorization: Bearer $XVII_TOKEN" -H "X-Title: Backup done" \
-d "12 GB" https://notify.xvii.network/t/backups
--priority urgent makes it critical, high a warning; --link adds a URL; --tags adds tags.
See recent events
xvii notify events --severity warning -n 50
xvii notify events --type 'deploy.*' --json
home's Activity shows the same feed for the whole instance.