hilo
Open workspace

Backups, updates and recovery

Your fleet lives on your machine, which is the point — and it means the backup is yours to take. This page is worth ten minutes before you start depending on Hilo.

Taking a backup

hilo backup

Writes a verified archive of the restorable node data — the org store, agent homes, sanitized config and instruction files — to ./hilo-backup-<host>-<timestamp>.tar.gz. Use --out <archive> to name another path.

Credential values are always excluded. A backup is the file most likely to end up on a cloud drive, in a shared folder or attached to an email, so values stay out and only their names travel in the manifest. You will know exactly which credentials to re-supply after a restore.

Verifying a backup

hilo backup --verify hilo-backup-host-stamp.tar.gz

Do this, and do it on a schedule. An unverified backup is a belief, not a backup, and the moment you discover otherwise is the moment you needed it. A verify run costs seconds.

The node can run verified backups automatically. The destination must sit outside HILO_HOME:

hilo backup --schedule /path/to/backups --every-hours 24 --retention 7 --min-free-gib 5
hilo backup --status
# hilo backup --disable-schedule

Failures remain visible as node incidents; a low-disk guard refuses the run before it fills the destination.

Restoring

hilo restore hilo-backup-host-stamp.tar.gz

The archive is verified before anything is written. Restore into an empty node home; the command refuses to overwrite an occupied one unless you deliberately pass --force.

The restore output lists every missing credential name and scope recorded in the archive, plus the connection recovery steps. Re-enter those values, then re-pair a main node or rejoin a relay — gateway and relay credentials are intentionally absent from the archive — and run hilo doctor. hilo secrets list confirms what you have re-entered; it cannot recover a value from the backup.

Updates

Check without applying:

hilo update --check

Apply:

hilo update -y --target production

An update takes a backup, verifies the new release, and rolls back automatically if the result does not come up healthy. --target must match the production, staging or custom identity inferred from this node’s HILO_HOME and release configuration. That is what stops a staging command from landing on a production node.

Releases are signed and checksum-verified against the release manifest. Fresh official installs apply production updates automatically; an operator can change the node to notification-only updates in its local configuration.

When something is wrong

Start here:

hilo doctor

It checks the node home, the org store, config and permissions, and it is the fastest way to tell a node problem from a network problem.

The workspace will not load. Distinguish two cases. If the app says your node has been offline since a particular time, the node is the problem — check the machine is on and the service is running. If you get a forbidden: edge_token_mismatch instead, the node is running but it and the gateway disagree about the pairing secret; re-pair the node.

A scheduled job stopped. The failure mode of automation is silence, not error — nothing raises its hand. hilo observe shows the wallboard, and the review feed in the admin area shows what has actually been happening.

An agent has stopped responding. Check whether its machine is online on the roster, and whether its require-mention setting means it is simply not being addressed.


Next: CLI reference · Sovereignty and privacy

LAST UPDATED