A watchdog on the box it watches cannot tell you the box died.
hbwatch runs on your home server and checks it from the inside. Something outside your house watches for the heartbeat, so when the machine stops, somebody hears about it. That is the half you cannot build yourself with a cron job.
The failures this is actually for
Uptime is the easy part, and it is not usually what goes wrong. A home server tends to stay up and quietly stop doing its job:
- The backup stopped running in March. The disk is fine, the service is running, the last successful run was four months ago and nothing said so.
- A container has been unhealthy for weeks. Docker restarts it, it fails its healthcheck, Docker restarts it. Forever, silently.
- Autostart drift. The array came back after a power cut. Two of the nine containers did not, and you find out when somebody asks why the photos are gone.
- Parity or scrub overdue. The one job whose entire purpose is to notice rot before it spreads, not run since the last time you thought about it.
- A disk with reallocated sectors, reported by SMART, read by nobody.
These come from one real server's history. Every one of them was found weeks or months after it started, by accident.
How it works
The agent, on your machine
Runs every check locally and decides for itself what is worth waking you for. One static binary, no dependencies, no runtime to install. Open source, so you can read exactly what it looks at.
The watcher, somewhere else
Receives a heartbeat carrying verdicts. If the heartbeats stop, it tells you the machine is gone. That is the one alert nothing running on the machine could ever have sent.
It knows the difference between a machine that died and one you rebooted on purpose, because a clean shutdown announces itself. A reboot is silent. A power cut is not.
What it will not do
- It cannot change anything on your server. There is no remote execution path, no command channel, and no plan to add one. The agent reads and reports.
- It sends verdicts, not data. Which check failed, how badly, since when.
No file listings, no metrics history, no config contents. Run
hbwatch print-payloadand you see the exact bytes that would leave the machine. - It does not need an inbound port. Nothing listens. The agent makes one outbound HTTPS connection to one address.
- It degrades instead of demanding root. Without privilege it skips SMART and Docker and tells you it skipped them, rather than refusing to start.
Install
curl -fsSL https://hbwatch.dev/install.sh | sh -s -- --token hbw_your_token
Or, since running a script from the internet as root deserves a look first:
curl -fsSL https://hbwatch.dev/install.sh -o install.sh less install.sh sh install.sh --token hbw_your_token
It detects Unraid, systemd or neither, verifies the binary's SHA-256 against
a published list before installing it, writes a config file readable only by root, and
installs a service so it survives a reboot. On Unraid it installs to appdata and the boot
flash, because /usr and /etc there are a RAM disk and anything
written to them is gone at the next boot. sh install.sh --uninstall removes all
of it.
Works without a token too. You get every local check and local alerting, and nothing offsite watching for silence.
Plans
| Free | Paid | |
|---|---|---|
| Servers | 1 | Up to 25 |
| Checks | All of them | All of them |
| Heartbeat recorded | Hourly | Every minute |
| A dead machine is noticed | Within about 75 minutes | Within 3 minutes |
| Alerts your agent raises | Immediately | Immediately |
The only thing a plan changes is how fast a dead machine is noticed. Everything the agent finds while the machine is alive reaches you within a minute of the check that found it, on both plans. A free tier that sat on a failing disk for an hour would not be a cheaper product, it would be a dishonest one.
Early access
NOT OPEN YET
Accounts are invite only while this is being shaken out on real hardware. If you run a home server and want in, say what you run and I will send you one: hello@hbwatch.dev.
The agent is open source and works today without an account. The invite is only for the offsite half.