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.

  • danielbp@lemmy.ml
    link
    fedilink
    English
    arrow-up
    7
    ·
    4 hours ago

    Nice idea!

    I was browsing the repository but found no information on how this tool actually performs the backups:

    • Does it do snapshots?
    • How it handles file versions?
    • How it handless locked (open) files on servers?
    • How it ensures integrity of the archives?

    It would be great if you add some of the backup inner works to the documentation. Right now it is focused on connectivity.

    • themachine@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      3 hours ago

      Per his description it uses Restic under the hood so for the nitty gritty on that you can just go read the very decent Restic docs.

      I’m a big fan of restic and use it for all my backups.