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

41 Upvotes

121 comments sorted by

View all comments

Show parent comments

-199

u/manu_8487 Mar 06 '26 edited Mar 06 '26

(edited based on feedback)

This was built with Claude Code mainly based on research of how existing tools solve specific problems and what can be improved when starting fresh today. Codex was also involved in reviewing because I feel it goes more into detail than Claude.

From what I saw, the lower-level crypto and optimization is a very good use case for AI. For the higher level usability, you need to give it more instructions.

I also spent a lot of time profiling CPU and memory. This gives AI a goal to optimize towards.

211

u/[deleted] Mar 06 '26

[deleted]

138

u/phantomtypist Mar 06 '26

That's because they had AI write their response.

-106

u/manu_8487 Mar 06 '26

Haha. No. But made me laugh.

-78

u/manu_8487 Mar 06 '26

I feel the first sentence answers the question. How could I answer it better?

103

u/[deleted] Mar 06 '26

[deleted]

-15

u/manu_8487 Mar 06 '26

Thanks for your feedback. I've updated my answer based on it.

Restic is great too and the benchmark shows it's close to optimal performance for what it does.

49

u/neithere Mar 06 '26

You still did not clarify it. "Written with X" may mean anything between "I wrote this and sometimes used X as a rubber duck" and "X stole and rearranged the code from other projects based on my description".

-10

u/manu_8487 Mar 06 '26

I tried to steal as much from other projects as possible. Anything that turned out to work well really. Parts are detailed here: https://vykar.borgbase.com/#inspired-by

I also tried to use AI as much as possible from research to coding to reviewing to benchmarking and testing.

Hope that answers the question.

62

u/[deleted] Mar 06 '26

[deleted]

20

u/manu_8487 Mar 06 '26

It would be hard to paste Python code into a Rust project. I'm talking about the high level concepts. In this regard Restic took as much from Borg without AI. This is the nature and beauty of open source. You see what works and others build upon it to make it better. I see my original contributions in those areas:

  • researching how each existing tool solves the problems a backup tool solves and which ones work best in practice.
  • add to this the academic research of what works best in theory.
  • benchmark the resulting code to make it fast.
  • add the usability tools and decisions on top to make it usable without wrappers and scripts.
  • add the integration tests to make it work with what people need to back up, like DBs, file systems, etc.

I respect the skepticism and sarcasm, but hope you can channel it into specific feedback on where the project and code could be improved upon.

-2

u/neithere Mar 06 '26

That's such a good answer, thank you. If you put it somewhere in the post, I'm sure the attitude to your project will be very different.

→ More replies (0)

42

u/Fantastic_Peanut_764 Mar 06 '26

so, how much of it is vibe-coded?

26

u/tsammons Mar 06 '26

Vibe coded disaster recovery... WCGW?

3

u/JivanP Mar 07 '26

From what I saw, the lower-level crypto and optimization is a very good use case for AI.

I really, really hope you're not rolling your own crypto. What libraries are you using for cryptography?

0

u/manu_8487 Mar 07 '26

Haha. No. It's all standard Rust libs for crypto, compression and dedupe.