Keep your monitors. Fix your alerts.
InfraInbox is your infrastructure inbox. Proxmox, Uptime Kuma, Grafana, Beszel and your own scripts send it their alerts. Repeats become one incident. Acknowledge it once, and re-notifying stops everywhere.
Free to self-host with Docker Compose. InfraInbox Cloud opens as an invite-only beta, free during the beta.
Arriving
- Uptime Kumanextcloud DOWN: timeout after 48 s
- Proxmox VEbackup job failed on pve2 (1 of 7 guests)
- Uptime Kumanextcloud UP: 212 ms
- Uptime Kumanextcloud DOWN: timeout after 48 s
- Beszelnas-01 disk usage above 90 %
- Uptime Kumanextcloud UP: 198 ms
- Uptime Kumanextcloud DOWN: connection refused
- Beszelnas-01 disk usage above 90 %
- Uptime Kumanextcloud DOWN: connection refused
Inbox
- Criticalnextcloud is down6 eventsAcknowledged from your phone at 03:17. Re-notifying stopped.Recovered at 03:26. Down for 14 minutes.
- ErrorBackup failed on pve21 event
- Warningnas-01 disk above 90 %2 events
9 alerts in. 3 incidents. You were told twice.
Every tool alerts you its own way
Each monitor you run is good at noticing. None of them knows what the others said, whether you already saw it, or that the problem went away on its own.
- One flapping service, forty messages.DOWN, UP, DOWN every minute, and every one of them buzzes your phone.
- The failed backup looks like the other twenty-nine.The nightly report arrives by mail. Nobody opens the one that matters.
- The job that stopped in March.Nothing told you it failed, because nothing ran.
- Everyone saw it. Nobody is on it.The alert went to the group chat, and there is no way to say “mine”.
How it works
Your tools keep doing what they do. InfraInbox sits between them and you.
Sources
The apps and hosts you want to hear about, and the tools that watch them.
Proxmox, Uptime Kuma, Alertmanager, Grafana, Beszel, cron, curl
Events
Every alert becomes the same shape: what happened, to what, and how bad.
Title, severity, resource, a key that says “this is the same problem”
Rules and incidents
Repeats fold into one incident. Recoveries close it. Your rules decide who hears about it, and when.
Routing by severity and source, quiet hours, silences
Destinations
Where you want to be told. Acknowledge in one place, and the rest stop repeating it.
Telegram, Slack, Discord, webhooks, the iPhone app
What changes
Repeats become one incident
Each new occurrence is counted on the open incident instead of sent to you again. A service that flaps is marked as flapping, and a failure that comes back soon after it recovered reopens the same incident.
Acknowledge it once
Acknowledge from the dashboard or the iPhone app, and re-notifying stops. Telegram and Discord messages are edited in place to show who has it; channels that can’t edit a message hear about the recovery.
Recovery closes the incident
An “up” from Uptime Kuma, a resolved alert from Alertmanager or a success event with the same key resolves the incident, and the incident records how long it lasted.
Rules run on the server, for every channel
Route by severity and source, hold the non-urgent until morning with quiet hours, and silence a host during maintenance. It happens before anything is sent, so every channel follows the same rules.
Heartbeats for jobs that fail by not running
Give a backup script or a cron job a ping URL. If it doesn’t check in on time, or reports a non-zero exit, you get an incident with its log attached.
Proxmox, guided
Proxmox VE and Proxmox Backup Server send to InfraInbox through their built-in webhook target. The setup wizard writes the configuration for you, and is designed to take about five minutes.
Works with what you already run
If a tool can send a webhook, a Gotify message or an HTTP request, it can send to InfraInbox.
Sends alerts to InfraInbox
- Proxmox VE
- Proxmox Backup Server
- Uptime Kuma
- Prometheus Alertmanager
- Grafana alerting
- Beszel
- Watchtower
- Scrutiny
- Unraid
- Other Gotify senders
- Scripts, cron and CI
- Scheduled jobs
- Docker hosts (preview)
InfraInbox tells you on
- Telegram
- Slack
- Discord
- Webhooks
- InfraInbox for iPhone
- InfraInbox for Android (planned)
- Email (planned)
- ntfy, Pushover and Gotify (planned)
Your own scripts are sources too
Report a failure from anywhere that can run curl, and resolve it with the same key when it’s fixed. Give a scheduled job a heartbeat, and hear about it when it stops.
# Later, the same dedupKey with "severity": "success" resolves it
curl -fsS https://infrainbox.example.com/v1/events \
-H "Authorization: Bearer $INFRAINBOX_KEY" \
-H "Content-Type: application/json" \
-d '{"title": "Backup failed on nas-01",
"severity": "error",
"dedupKey": "backup:nas-01"}'# crontab: report the exit status, and the log if it failed
0 3 * * * /usr/local/bin/backup.sh > /tmp/backup.log 2>&1; \
curl -fsS --data-binary @/tmp/backup.log \
https://infrainbox.example.com/v1/heartbeats/$HB_KEY/$?Self-host it, or let us run it
Both run the same core, and both work with the same app.
Self-hosted
Free, on your own hardware.
- One Docker Compose file: the server and PostgreSQL, with the dashboard built in.
- No InfraInbox account, for the server, the app or the push relay.
- The server doesn’t phone home. Your data stays with you.
- Will be released under AGPL-3.0.
InfraInbox Cloud
Invite-only beta, free during the beta.
- The same product, run by us: nothing to install or upgrade.
- An off-site heartbeat that notices when your whole homelab goes dark, InfraInbox included.
- Works alongside a self-hosted server, with the same app.
Your alerts stay yours
- End-to-end encrypted push.Alerts reach the app through our relay as ciphertext. The relay can’t read them, self-hosted included.
- No telemetry.The self-hosted server doesn’t phone home. Events, incidents and settings stay on it.
- Secrets stay secret.Destination tokens are encrypted at rest and never written to logs or error messages.
- It never touches your infrastructure.InfraInbox receives and routes alerts. It has no shell, start or stop actions.
What InfraInbox is not
- Not a monitor.It doesn’t probe your services. It listens to the tools that do.
- Not a push pipe.ntfy, Gotify and Pushover do that well. InfraInbox decides what is worth sending.
- Not an on-call pager.v0.1 has no rotas or escalation chains.
- Not a Telegram bot.Telegram is one destination among several.
Questions
What is InfraInbox?
An inbox for the alerts your infrastructure already sends. Proxmox, Uptime Kuma, Alertmanager, Grafana, Beszel, your cron jobs and scripts report to InfraInbox; it groups repeats into incidents, applies your rules and quiet hours, and notifies you on Telegram, Slack, Discord, a webhook or the iPhone app.
When you acknowledge an incident, re-notifying stops everywhere. When the matching recovery arrives, the incident closes and records how long it lasted.
Is it a monitoring tool? Do I still need Uptime Kuma?
Keep your monitors. InfraInbox doesn’t probe your services: it listens to the tools that do. Uptime Kuma keeps checking your sites; its notifications go to InfraInbox, which turns them into incidents alongside everything else you run.
Why not send every alert straight to Telegram?
That works for one tool. With five, a flapping service sends DOWN and UP all night, the backup report looks like every other message, nobody in the group chat knows who is handling what, and the job that silently stopped running never says anything at all.
InfraInbox sits in between: one incident per problem, one acknowledgement, recoveries that close things, and heartbeats for jobs that fail by not running.
What does it cost?
Self-hosting is free. InfraInbox Cloud starts as an invite-only beta and is free during the beta. Pricing for Cloud will be announced before the beta ends.
What do I need to self-host it?
A machine that runs Docker Compose. The compose file starts the InfraInbox server and PostgreSQL; the web dashboard is built into the server. For tools outside your network, or the phone app away from home, the server needs an address they can reach.
Is it open source?
The server and the web dashboard will be released under AGPL-3.0 with v0.1. The API contracts, SDKs, templates and the agent are Apache-2.0. The mobile apps and the push relay are closed source and free to use.
Get told when v0.1 ships
One email when the self-hosted release is out, and one when your Cloud beta invite is ready. Nothing else. Unsubscribe in one click, and we delete your address.