Ruud van Asseldonk built Deptool, a declarative Git-backed deployment tool for personal infra: copies config files over SSH, swaps symlinks atomically, restarts systemd units, auto-rolls back on failure.
Key Takeaways
Deptool decouples config generation from distribution: pre-render files into a Git repo directory tree, materialize them under /var/lib/deptool/<commit>, and point a current symlink atomically.
Deployment plan is computed offline from remote-tracking refs, making plan display sub-second; a distributed lock validates the plan is still fresh before applying.
Auto-rollback works by re-pointing the symlink to the previous version and restarting the systemd unit, completing in milliseconds.
The agent is a static binary uploaded to a path named after its own commit, invoked over SSH as a zero-arg program using stdin/stdout – no Python, no Ansible modules, no word-splitting escapes.
Optimistic concurrency mirrors git push: fast for solo operators, degrades under contention; explicitly scoped to personal infra, not team-scale clusters.
Hacker News Comment Review
Commenters framed Deptool as part of a welcome trend of single-operator bespoke tools, appreciating that it makes no pretense of being a general-purpose product.
A commenter who built their own DNS server and Ansible-replacement reported each project yielded 1-2 years of real use plus unexpected appreciation for the complexity of OSS equivalents – suggesting Deptool follows a proven personal-infrastructure pattern.
Notable Comments
@happyPersonR: sees it as a genuine new take applicable to real use cases, noting even Kubernetes could be simplified to a similar single-binary model.