Skip to content

zolderStatus you can trust for a local-first backup

Observes your Syncthing mesh and wraps your restic backups, then emits one structured status report and pages you when something breaks. Never a sync engine.

What zolder is

zolder is the observability and orchestration layer over a local-first personal storage setup:

  • Syncthing carries your files between devices.
  • restic backs the synced tree up to object storage.
  • zolder watches both, plus canary files and (on the home node) ZFS pool health, then emits a structured zolder.json status report and alerts when something is wrong.

The design line is deliberate and load-bearing (ADR-0002): zolder observes Syncthing and wraps restic — it is never a sync engine.

What zolder is not

  • It has no reconciliation logic — no tree diffing, no conflict resolution, no rename detection, no tombstones. The moment a change would need any of those, the answer is "configure the underlying tool" or "file an issue upstream", never "implement it here".
  • It is not a backup tool. Taking snapshots is restic's job; zolder run backup only wraps restic to capture its exit code and duration.
  • It is not a monitoring service. It is a oneshot binary that a timer runs; a heartbeat ping to an external dead-man's switch covers the one failure mode a local tool cannot report on itself.

"A zolder status you trust beats a sync engine you don't."

Not yet built

Fleet aggregation (rolling every device's zolder.json up to the node), a system-tray indicator, and a serve dashboard are on the roadmap but not shipped yet — this guide documents only what the current release does.