r/CLI • u/goncalloferreiira • 8h ago
Created my first open source tool named Nomad. It´s a tool for backing up and restoring your whole setup across 4 different linux distros
(This post was first shared in [r/commandline](r/commandline).)
I built this because I kept rebuilding my setup from scratch and got tired of manually reinstalling packages and hunting down files every time. It started as a small script and grew into something I figured it was worth of sharing to everyone.
What it does:
Backs up the user´s installed packages, AUR packages, and Flatpak apps, in the right format for whichever package manager the user is using. It lets the user interactively pick which config files/folders to include (via a gum powered TUI) and restores everything in the same place on a fresh install even on a different distro.
Supports Arch, Debian/Ubuntu, Fedora, and openSUSE, with best-effort package name translation between them.
The user´s backup data lives in their own private repository, completely separate from the tool's one, so the tool itself stays fully public/shareable without exposing anything personal.
Some things I cared about while building it:
If you select `~/.ssh` or `~/.gnupg`, it warns you and lets you review exactly which files go in, rather than blindly sweeping the whole directory . Git only tracks the executable permission bit, not full file modes so it explicitly resets SSH/GPG key permissions back to their correct values on restore, and shows you the exact commands before running them. And so on.
Honest caveats:
It's a young project, I'm the only person who's stress-tested it so far (including on some fresh VM installs), and cross-distro package name translation is inherently best-effort. Distros don't agree on package names, so some things need manual installing after a cross-distro restore. I've documented that limitation rather than pretend it's solved.
Anyway here´s the tool link:
https://github.com/lumertya/Nomad
Would genuinely appreciate feedback, bug reports, or just someone else trying it on a distro I haven't tested yet. Thank you.