Over the past year, I’ve gone down the homelabbing rabbit hole, and as a result, I’ve tried quite a few server operating systems. Two weeks ago, I assembled a new home server because my old DietPi wasn’t cutting it anymore. Instead of going with the usual Debian or Ubuntu server, however, I decided to give Proxmox a try. And I’m so glad I did.
It has a nice web dashboard
Manage your self-hosted services from a powerful web portal
I’ve tried a few server operating systems, including Debian, Ubuntu server, Alpine, and DietPi. One thing they all have in common is that you can only interact with them using the command-line.
Proxmox itself is headless, like any of the standard server operatibng systems, but it gives you a neat and functional web dashboard. Here’s what it looks like.
It might feel a bit intimidating at first because it has so many options and buttons. But you only need to know a few to get started. On a fresh Proxmox, you’ll see the Proxmox node (mine is called “jelly”) on the left pane. On the right, there’s a “Shell” button. Clicking it opens a new window with the Proxmox terminal. You don’t need to SSH into the machine to access it. It all works within this web UI.
You can also configure network settings, storage, repos, create containers or virtual machines, and send reboot or shutdown signals to the Proxmox machine. Once you have some containers and virtual machines going, you can manage those separately too, directly from this helpful web UI.
It also gives you helpful real-time stats about resource usage for individual containers and VMS, as well as the entire Proxmox machine. That way, you can see how much RAM, CPU, storage, and network bandwidth everything is consuming right from the dashboard.
It gives you the best of both worlds
You can run containers and full-fat virtual machines on the same host
Proxmox is meant for running other operating systems on it. Think of it as multiple (virtual) server boxes inside one box—a kind of “server inception,” if you will. Technically, this kind of system is called a hypervisor system, which runs on the machine’s bare metal. And in turn, it creates and manages virtual machines (VMs).
When you want to host a service, you can spin up a full virtual machine, say a Debian server OS, using the Proxmox web UI (you can download templates and OS images).
You can then access this VM’s console directly from the Proxmox web UI. Or SSH into this VM like you would with a standard server OS. Each VM gets its own IP address, and you can create as many as you need. That way, you can have, say, Debian, Ubuntu, Alpine, DietPi, and even a Windows server side by side.
You don’t even need to spin up an entire virtual machine. Proxmox also lets you create lightweight Linux containers (LXC) that share the kernel with Proxmox. They spin up fast and get their own network just like standard VMs. For example, you could spin up an LXC for Docker and keep all your Docker services inside it. Note I have an LXC container dedicated to my Jellyfin server. There’s a Commafeed server for my RSS feeds and Beszel for system monitoring.
You don’t even need the Proxmox interface to use these containers. You can SSH into them directly using their IP addresses. That way, you can also share access to a container with other people without giving away your entire machine.
- Brand
-
Zettlab
- CPU
-
RK3588
- Memory
-
16GB LPDDR4x
- Drive Bays
-
4x 3.5-inch, 1x M.2 NVMe
Proxmox helper scripts
Deploy your services with one click
This is easily my favorite Proxmox feature. The community has developed hundreds of automation scripts that let you launch services and operating systems on Proxmox with a single command. You can browse them on the community website here.
For example, if I wanted to set up a lightweight Linux container for the Beszel system monitor, I could just run this command inside the Proxmox shell, and it would handle it for me.
bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/beszel.sh)"
It’ll usually show you a terminal user interface where you can configure the setup before installing it on your machine.
There are a lot of helpful scripts like this for major projects, like Jellyfin, Plex, Home Assistant, TrueNAS, Pi-Hole, Hermes, Ollama, and various Linux distros etc.
If you like experimenting with your self-hosted stack and spinning up disposable containers often, this will simplify that entire process down to a single click. I’ve tested many of these scripts already and (except a couple) they all worked perfectly. As someone who exclusively relied on Docker for this work, Proxmox community scripts feel like magic.
Clone entire containers and machines with one click
Easy backup and snapshots
This is a feature I haven’t tried much yet, but I love that it exists. Basically, you can create copies of the VMs and containers that you have installed on your Proxmox. One obvious reason is to use this feature to make backups. You can also create templates based on these clones.
You can also create system snapshots that freeze the current state of the VM or container. If anything ever breaks, you can just revert it back to the last save point. Very handy. If you want to make full backups for migration or recovery, Proxmox gives you backup and restore features too.
Segmenting the services into these virtual machines and containers makes them safer and stable. If one service breaks or gets compromised, it won’t take down the whole machine with it.
Save yourself the trouble and start using Proxmox today
Proxmox is easily my favorite server operating system that I’ve tried so far. I had known about it for some time, but I felt it was too complicated for my use. Now I just wish I had switched over sooner.
