Monitoring my restic backups with Uptime Kuma - Jan-Lukas ElseSkip to contentMonitoring my restic backups with Uptime Kuma<br>Published on 2026-06-08 in 👨‍💻 Dev<br>Short link: https://b.jlel.se/s/8a7
Share onlineShare this post Ă—<br>Use your browser's share dialogCopy share text
I have a couple of restic backup containers running across my servers, all based on the resticker image. It’s a basic part of every server configuration I use. Backups are executed on cron schedules. But until today, I had no visibility into whether they actually succeeded. So I had no idea one of my backups didn’t run for some weeks due to some “locks” in the repository.Since I already run Uptime Kuma for monitoring my blog and other self-hosted services, I figured I could use it for monitoring the backups as well. Turns out, it’s really simple.Uptime Kuma has a “Push” monitor type: you create one, get a unique URL, and ping that URL whenever your backup finishes or whenever it fails. If the ping doesn’t arrive within the configured timeout, or the status is not “up”, Uptime Kuma alerts you.The resticker image already ships with curl and supports post-backup hooks via environment variables. So all I needed was three lines per resticker container in my docker-compose.yml files:POST_COMMANDS_SUCCESS: |-<br>curl -s "https://your-uptime-kuma/api/push/TOKEN?status=up&msg=OK"<br>POST_COMMANDS_FAILURE: |-<br>curl -s "https://your-uptime-kuma/api/push/TOKEN?status=down&msg=failed"<br>POST_COMMANDS_INCOMPLETE: |-<br>curl -s "https://your-uptime-kuma/api/push/TOKEN?status=down&msg=incomplete"<br>POST_COMMANDS_SUCCESS fires when everything goes fine. POST_COMMANDS_FAILURE triggers if the backup errored entirely. And POST_COMMANDS_INCOMPLETE covers the case where the backup ran but some files couldn’t be read.Now after every backup, Uptime Kuma gets a heartbeat. If a backup fails or never runs, I’ll get notified on all the notification services I configured in Uptime Kuma and can act immediately to resolve the problem.<br>Tags : Backups, Monitoring<br>Jan-Lukas Else
Interactions & Comments Philipp Waldhauer @en smart! Ich pushe bei jedem Backup eine Metric in mein Influxdb und checke das dann.Simon If you're looking for cron/timed monitoring, have a look at healthchecks.io. Though your idea of Kuma is definitely cool as well!Have you published a response to this? Paste the URL here.© 2026 Jan-Lukas Else