

I highly recommend you use Proxmox as the base OS. Proxmox makes it easy to spin up virtual machines, and easy to back up and revert to backups. So you’re free to play around and try stupid stuff. If you break something in your VM, just restore a backup.
In addition to virtual machines, Proxmox also does “LXC containers” , which are system level containers. They are basically a very light weight virtual machine, with some caveats like running the same kernel as the host.
Most self-hosting software is released as a docker-image. Docker is application level containers, meaning only the bare minimum to run the application is included. You don’t enter a docker container to update packages, instead you pull down a new version of the image from the author.
There are 3 ways to run docker on Proxmox:
- Install docker inside a virtual machine (recommended).
- Install docker inside a LXC Containers (not recommended because of various edge cases)
- Install docker directly on the Proxmox host (not recommended for various reasons).
- (There is ongoing work for running docker images directly in Proxmox, this is in beta/preview since Proxmox 9.1).
The “overhead” of running docker inside a VM on the host is so negligible, you don’t need to worry about it.





Do you version your compose files in git? If so, how does that work with the dockGE workflow?