Proxmox

Proxmox

Most people have heard of this type-1 hypervisor, Proxmox. In case you haven’t, its basically a GUI wrapper for Debian which manages containers and VMs. I have always avoided Proxmox because I don’t like VMs (I think they are dated to the point where they are useless in comparison to containers) and when I need to do something outside of TrueNAS, I just use Ubuntu Server on bare metal. I was wrong.

Proxmox vs Ubuntu Server

As I have said, I use Ubuntu Server a lot. I think it is amazing, lightweight, and has tremendous support. When I run Ubuntu, I use two tools to give myself a nice experience – Webmin and Portainer. Those two things running on Ubuntu bare metal are amazing and give great functionality. However, I will tell you for as functional as Webmin is, its not very pretty. Since all my Ubuntu is doing is running docker, I wondered if there was a better way.

Why Proxmox?

I will give you the summary right here – I think Proxmox is better. The main reason I didn’t run it before was that I didn’t need any VM functionality and I didn’t want additional overhead on a machine that is going to run docker. Usually I am running on machine which I have rescued from the garbage, so they are a bit dated.

I chose to install Proxmox and do a comparison against Ubuntu running Webmin and Portainer to see how close it really was. It was equal. Its unbelievable, but its true. Proxmox wasn’t costing me anything to run in place of my regular Ubuntu setup. What I get for running Proxmox instead is a great GUI which allows me to monitor all the machine vitals, deploy VMs and containers, and run basic machine functionality either through the GUI or console. All basically for free (resource-wise).

My Proxmox Dashboard

Tteck Scripts

I dont use Proxmox for VMs. I purely use containers, and I deploy them using tteck’s scripts. Basically, instead of using the GUI (which is fine – no complaints) I do a one-liner script from a collection by Tteck. You can find them here. There must be over 100 scripts here which can simply be copied-and-pasted into the Proxmox console and do all of the work for you, perfectly, every time.

tteck's scripts

What is shown above is the script to launch docker and Portainer in its own LXC (Proxmox speak for container). I don’t actually use the top one, I use the Alpine Linux container which uses all of 300mb of memory. Amazing. I don’t use the default settings because I wanted to use more host resources for docker. Even with the 20 containers I am currently running, I am using less than 2 GB of memory to run the entire LXC.

Benefits

I can do some cool things with Proxmox that I wasn’t expecting, as well as some things I wasn’t able to do with Ubuntu. For example, I can:

  • run separate docker environments on the same machine
  • backup entire LXCs to TrueNAS in case of SSD failure
  • migrate entire LXCs to another machine (keeping its static IP and all LXC settings as well for a totally seamless migration)
  • do all of the same NFS mounts/shares as well as USB passthru
  • install anything I want on the underlying Debian system
  • change allocated resources on-the-fly

Conclusion

If you have been thinking about working with Proxmox, I highly encourage you give it a shot. Find a spare PC and do an install, utilizing tteck’s scripts and watch the magic happen. I am not going back to Ubuntu Server now that I see what I can do with Proxmox and LXCs.