Hey everyone,
I'm a web developer, mostly JS and PHP, about 4 years of experience. A while ago I helped a friend set up the infrastructure for his small IT company and ended up managing the backups there too.
The issue was simple: two servers, and I wanted to manage backups from one place. Backrest was the closest thing I found but it's single-machine, so you get one interface per server. The commercial alternatives felt like overkill. Also, they use Zitadel for SSO on all their internal tools, so OIDC support was a requirement from the start. And since they're working toward ISO 27001, having centralized, auditable backup management wasn't just nice to have.
I didn't find anything that fit, so I built Arkeep.
It's a backup manager with a server/agent model, built on Restic and Rclone. You run one server, deploy agents on the machines you want to back up, and manage everything from a single web UI. Agents connect to the server over gRPC so no ports need to be open on the agent side. It handles Docker volume discovery, pre/post hooks, and streams metrics back in real time.
One thing I want to be upfront about: Go was completely new to me. I had a client that required Go for some backend work, so I used Arkeep as a way to learn the language while building something I actually needed. I used AI a lot to get through it faster. The architecture and the decisions behind it are mine, but I didn't write idiomatic Go from scratch. I know this community has strong opinions on AI-assisted projects right now, so I'd rather say it clearly.
It's been running as a secondary backup system for about a month without issues. Still beta, still rough in places.
What works:
- Server + agent architecture, agents connect out (no open ports needed)
- Restic under the hood, Rclone for destinations Restic doesn't support natively
- Docker volume auto-discovery
- OIDC support
- PWA web UI
- Helm chart (needs more real-world testing)
- SQLite by default, PostgreSQL available
What's missing or not great yet:
- No VM support yet, it's planned
- Dashboard is minimal
- It's beta, bugs are expected
Repo: https://github.com/arkeep-io/arkeep
If you try it, feedback is very welcome. That's really why I'm posting.
Quick question, the way you say server/agent architecture, does this mean that the server manages the backup schedule and pulls the backups from the systems or does the connected computer initiate the backups?
I'm currently using synology active backup for my server and used to also use it for my desktop. Linux support is not ideal though and I would like to move to something with similar capabilities that is also not vendor locked.
My personal usecase would be backing up a single server, a desktop and a laptop.