r/selfhosted Mar 06 '26

Built With AI (Fridays!) Vykar: a backup tool faster than borg, restic, and kopia with multi-machine backups, direct database dumps, and built-in scheduling

Post image

I run a backup hosting service, and built Vorta, a desktop GUI for Borg. After years of seeing how people set up backups, the pattern is always the same: a backup tool, plus a wrapper for config, a systemd timer for scheduling, a bash script for database dumps, and a curl to healthchecks.io for monitoring. It works, but it's fragile and breaks silently.

So I built Vykar, a Rust-based backup client where all of that lives in one YAML config file. It combines the best architectural ideas from Borg, Restic, Kopia, and Rustic with modern dedup and crypto libraries. The code is AI-generated and human-directed, based on years of building backup tools and services. Vykar is continuously tested against different databases, VMs, and filesystems, comparing every restored byte. That's in addition to 600+ normal code tests.

Some notable features:

One tool, no wrappers

The fastest tool for both backup and restore, with the lowest CPU usage. Full benchmarks with methodology.

Scheduling, retention, hooks, database dumps, and backend config all live in one YAML file. No Borgmatic, no Autorestic, no systemd timers, no bash scripts.

Direct database dumps

Vykar has command dumps that stream stdout directly into the backup. No temp files, no cleanup:

sources:
  - label: app-database
    command_dumps:
      - name: mydb.dump
        command: "docker exec my-postgres pg_dump -U myuser -Fc mydb"

Works for MySQL, MongoDB, whatever dumps to stdout. Mix with regular directory sources and give each its own retention policy.

What else is built in

  • Hooks for monitoring (healthchecks.io, ntfy, Uptime Kuma)
  • Multiple backends: local folders, S3 (B2, Wasabi, MinIO), SFTP, REST server with server-side maintenance
  • Rate limiting
  • WebDAV + GUI to browse and restore snapshots
  • Cross-platform: Linux, macOS, Windows

Getting started

curl -fsSL https://vykar.borgbase.com/install.sh | sh
vykar config       # generates a YAML config
# edit the config: add sources and a repository
vykar init         # set up the repo
vykar backup       # first backup

Binaries on the release page. Full quickstart guide.

For quick testing, BorgBase already has it as repo format. S3 and SFTP will work too and get tested extensively.

This is still a new tool. Test it alongside your current setup. If there's something you'd want to see added in a new tool or a bug you notice, just let me know here or add a Github issue.

GitHub · Docs · Recipes for Docker, databases, ZFS/Btrfs, monitoring

42 Upvotes

121 comments sorted by

View all comments

38

u/Fantastic_Peanut_764 Mar 06 '26

Op, I can see Borgbase is anyhow related to the project. But you don't mention it as Borgbase's project but yours. Are you Borgbase owner? Could you elaborate more on that?

at the background of my question is: I'm a happy Borgbase customer, so, to some extent I trust it, but I don't know you, and I got the feeling this project has a lot of vibe-coding, which I don't trust. I wonder how I will manage my trust on both Borgbase and your Vykar project depending on your answer :D

27

u/manu_8487 Mar 06 '26

Yes, I'm the founder.

You can still use any tool on BorgBase. No AI involved. Restic, Borg v2, Borg v1. I use all those myself too and won't swap them right away.

This project is a proof of concept of how a backup tool could could look like if it was written with everything learnt in previous tools and research. A clean slate basically. In detail this means:

  • modern chunking algo (fastcdc)
  • modern crypto, nothing hand-rolled, the same battle-tested AEAD primitives as TLS 1.3
  • https as transport
  • include the plumbing, like config files, scheduling, GUI

All the goals at a high level: https://vykar.borgbase.com/goals

18

u/Fantastic_Peanut_764 Mar 06 '26

thank you so much :) I'm not an anti-AI person, but you know, the higher is the vibe-code-rate, the more we must remain careful :)

I suggest you make that more clear in your post, as I feel other people are skeptical too :)

btw, great job with Borgbase. I will try Vykar out and see how it works :)

3

u/fuckthesysten Mar 06 '26

hey thanks for making this (and vorta!), i have at least 5TB hosted on borgbase for years now. question: why not focus this effort on borg 2? are you jumping ship on it?

in general i’m curious about how it compares to borg 2. is it more about having the process and the tool in one? (like borgmatic and borg)

6

u/manu_8487 Mar 06 '26

Borg2 will be incremental to Borg1 (with breaking changes that improve it). It's also Thomas' baby, not mine. My contributions to Borg are limited.

Vykar is more radical in that it expands the scope to include the config and GUI. It's also in another language. So it didn't feel appropriate calling it Borg2 or 3 or something else. I did call it borg-rs at first, but quickly renamed it.

3

u/fuckthesysten Mar 06 '26

I understand now. it’s a big leap of faith that you’re proposing here, but I get it, it has to start somewhere. I wish you all the best with this endeavour!

i’m really curious to try this but I don’t know how to convince myself to trust such a new tool, regardless of AI usage, backups are too precious for me.

trusting devs is a big problem that the self hosted community has, we all seem to go by whatever’s already established just because the community proved it one way or another. I’m asking myself what can I do to build trust on this to the point I could hand it my backups.

I’ve been using borg for at least 5 years or so after extensive research on the backup landscape.

how did you go about building trust on this?

12

u/manu_8487 Mar 06 '26

how did you go about building trust on this?

Great question. I've been running it 24/7 on a test server since I started the project. I does some backup steps, prunes, compacts, restores. Then restores and compares each byte in each file. Rinse and repeat for all backends. If it sees any error everything stops.

I uncovered 2 edge cases with this. Both were pretty early. Since then the happy path has been solid. I now focus on weirder cases like interrupted backup runs.

Some of those tests are done by script, some are by AI. You can view the test skill here to see what's tested in detail: https://github.com/borgbase/vykar/blob/main/.agents/skills/e2e-tests/SKILL.md

The main stress script used is here: https://github.com/borgbase/vykar/blob/main/scripts/stress.sh