Plex, PiHole, Photoprism, Home Assistant, Syncthing in a hub and spoke config, Caddy for reverse proxy, custom containers for: yt-dlp, restic, and rsync.
Plex, PiHole, Photoprism, Home Assistant, Syncthing in a hub and spoke config, Caddy for reverse proxy, custom containers for: yt-dlp, restic, and rsync.
From a user perspective, Distrobox is a tool that lets you “spin up any distro inside your terminal”.
You can basically create a mini Linux environment of any distro that you can access through the terminal. You can set it to share your home folder, our create a new home folder just for that mini environment.
Behind the scenes Distrobox is creating and managing containers through Podman or Docker. You could technically achieve the same thing by manually setting up Podman containers, Distrobox just makes it very easy to create and maintain those containers with the correct permissions. It also has useful tools where you could install an app in a Distrobox container, but then add that app to your host OS app list.
This makes it especially useful for immutable OSs. Instead of adding packages to your base OS, which should be kept as minimal as possible, you can just install them in a Distrobox, so your host’s root filesystem is unaffected.
I daily drive Fedora Silverblue on my laptop and distrobox has been great.
I have layered only two packages: USB Guard and Distrobox. I run syncthing in a rootless podman container, and the rest goes through Distrobox.
I was even able to setup ProtonVPN in distrobox and it functions as if it was directly installed on the host (just need to map your home folder and some permissions).
I hope that immutable becomes either the standard or at least all major distros start offering it as an alternative. Makes everything foolproof and makes me much more willing to try new packages and tools because I can always just roll back.
The only thing that would really make it perfect is if files in /etc/ where also handled in a similar manner. IE: Can make changes to configuration files, and easily roll back to defaults at any time.
Yeah I saw a post about it a long time ago on Reddit for users with lots of devices
Basically it is just setting up one or two “central devices” that know all the client devices, but not linking the client devices individually.
IE: One server is connected to your phone, laptop, tablet, desktop, etc. But the phone is not directly connected to your laptop or desktop or tablet.
To be fair I don’t actually know if this is the best approach anymore or if just connecting all of them in a mesh is better 🤷
Here is a forum post describing it.