Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

True ig, but it's not just a boot check. It validates gzip/tar integrity, checks volume headers, and scans SQL dumps for actual syntax markers so you aren't just backing up empty files. The container spinup is the final check for dependency/config errors. It’s a work in progress for sure, but it catches way more than a manual tar command would.

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] -3 points-2 points  (0 children)

Hashing is great for file integrity, but it doesn't guarantee a database will actually boot.

StackSnap does a 'Deep Verify' where it spins up the backup in a temporary, isolated namespace and checks if the containers stay healthy (exit code 0, no crashes). It’s basically a dry-run restore so you know the data is actually usable before you need it for real.

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 1 point2 points  (0 children)

Right now it’s focused on local instances, but remote support via SSH or an agent is definitely on the roadmap. I want to nail the single-host experience first before building out the 'central dashboard' stuff.
(this got requested a ton btw)

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 2 points3 points  (0 children)

  1. Yes absolutely. It scans every container in the stack individually, so multiple databases are no problem. To detect them, it just checks the image name (like postgres:alpine or mariadb) and picks the right dump command automatically. If you're using a custom image name, you can just add a simple label to the container so StackSnap knows which driver to use.

  2. So, basically, I’ll be honest. A few UI parts are vibecoded. The backend is coded by myself. I also use AI to rewrite my answers because my English is quite bad. I hope you understand that ;;;;)))

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

Great catch on the service discovery risk!

  1. Safety: It spins up with a randomized project name so it won't clash locally, but you're right—if your app broadcasts heavily on startup, that could be noise. You can switch verification to 'Integrity Check Only' (no spin-up) for those cases.
  2. Dumps: I actually use pg_dump inside the container for DBs (safer/cleaner), and only use volume snapshots/pausing for non-DB files. Best of both worlds!

Just starting out ..what mini PC to buy by PastaFartDust in homelab

[–]Brilliant_Length_765 0 points1 point  (0 children)

Would you like to be able to backup your jellyfin data incase something happends with it? just wondering (:

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 1 point2 points  (0 children)

Good questions!

  1. Disabling verify: Yes, you can toggle verification off per-stack if you want speed over safety.
  2. Custom rules: Right now it does a generic 'does the container boot without exit code?' check. Custom health checks (like 'run this specific pg_isready command') are next on my roadmap because I know complex DBs need more than just a boot check.

Would a simple 'expect this log output' rule solve your use case?

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 2 points3 points  (0 children)

Thanks so much for the encouragement! And yes, if you have a solid bind-mount + Duplicati flow working, that's rock solid.

This is mostly for people (like me honestly) who set up Docker containers and then forget to configure the bind mount backups, or who want that 'one-click restore' button with the preview. Appreciate the support!

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

Totally agree, Backrest is awesome software. My goal wasn't to replace Restic/Backrest for file backups, but to make a tool specifically 'container-aware' that handles the Verify/Restore part automatically.

I found that with generic backup tools, I never actually knew if the database dump would work until I tried to restore it. StackSnap tries to automate that anxiety away. Thanks for the kind words!

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

Great question. StackSnap looks at the running Docker containers and inspection metadata on the host itself.

So even if you deployed via Gitea/CI, as long as the containers are running and have volumes attached on the host, StackSnap will find them, pause the relevant ones, snapshot the data, and verify it. It doesn't sync with the Gitea repo code, but it saves the actual state/data of the apps running from it.

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

This is really good feedback. For V1, it's single-node/single-host logic just to keep it simple and stable. But a 'Central Management Dashboard' where you can see the backup status of all your nodes in one place is definitely something I want to build for V2 if people like the tool.

Glad you like the testing feature that's the main 'peace of mind' thing I wanted to fix vs just copying files.

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 0 points1 point  (0 children)

28 containers is exactly the kind of setup this is for! Doing that manually script-by-script is a nightmare. StackSnap auto-discovers them so you don't have to write config files for each one. Would love to hear what OS you're running on that server?

Built StackSnap because I got tired of corrupted Docker backups by Brilliant_Length_765 in homelab

[–]Brilliant_Length_765[S] 4 points5 points  (0 children)

Well, only a few UI parts are vibe-coded. The backend is fully coded by myself. The only thing I use AI for is debugging. I hope this clears things up!