โ† back to projects

Proxmox Home Server

The foundation of my homelab โ€” a Dell OptiPlex 7080 running Proxmox VE, hosting every VM and container in my setup.

Proxmox Dell OptiPlex 7080 ZFS Virtualisation Linux
Proxmox VE โ€” Dell OptiPlex 7080 i5-10500T ยท 64GB DDR4 ยท 1TB NVMe (ZFS) ยท 256GB SATA SSD (ISOs) ยท 192.168.1.250 STORAGE NVMe ZFS Pool โ€” VMs & Containers STORAGE SATA SSD โ€” ISO Images & Templates โ”€โ”€ LXC CONTAINERS โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ jellyfinCT Ubuntu LXC 192.168.1.248 Jellyfin ยท Radarr ยท Sonarr ยท Prowlarr jellyseerrCT Debian LXC 192.168.1.247 Docker ยท Jellyseerr websiteCT Debian LXC 192.168.1.245 Caddy ยท Astro ยท Cloudflare Tunnel โ”€โ”€ VIRTUAL MACHINES โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€ gameserver 192.168.1.249 Ubuntu ยท AMP Minecraft ยท Valheim ยท Zomboid displayserver 192.168.1.246 Ubuntu ยท Docker Grafana ยท Prometheus windowsdesktop 192.168.1.88 Windows 11 ProtonVPN ยท qBittorrent LEGEND LXC Container Virtual Machine (Linux) Virtual Machine (Windows) Running

The Hardware

I picked up the OptiPlex 7080 on eBay for around ยฃ230 โ€” a solid deal for an i5-10500T, 64GB DDR4 and a 1TB NVMe. The main requirement was small form factor. Everything in my homelab sits inside a 10 inch DeskPi Rackmate T1, so the host machine and all peripherals had to fit within that.

Why Proxmox

I'd used Proxmox before so I was already familiar with the interface and how it handles VMs and containers. Beyond that it was an easy choice โ€” it's open source, completely free, and has a huge community behind it. Whenever something breaks or behaves unexpectedly, the answer is usually already out there somewhere.

Storage Layout

The 1TB NVMe runs a ZFS pool which is where all VMs, containers and their data live. ZFS gives data integrity checksums and easy snapshot support which is useful when you're experimenting and want a quick rollback point. The 256GB SATA SSD is used purely for ISO storage โ€” OS images, templates and anything needed for spinning up new machines.

The Road to Getting Here

Early on I was leaning heavily on AI tools to do config without fully understanding what was actually happening โ€” which led to flattening VMs and starting over when things went wrong rather than properly diagnosing the issue. Not the most efficient approach but it taught me a lot about what not to do...

One issue that took a while to resolve was hardware transcoding. I originally ran Plex as my media server but 4K playback to my TV was problematic. I moved to Jellyfin as that has free hardware transcoding, โ€” but even then the first LXC container I created for Jellyfin refused to see the host's iGPU. This time flattening did solve the issue.. I setup the container exactly the same as before and it just worked :)

These days the setup is stable and I have a much better understanding of what's running and why. The trial and error was a bit tiresome but I now know how everything fits together now, and can rebuild if needed

Next Plans

Add github push/pull requests for all servers so I can have all server configs saved into the cloud

Set a robust and regular backup schedule as since the proxmox host is on RAID0 there is currently no redundancy..

Add more VMs - Not sure what will be next exactly but I have a few ideas in mind :)

Current VMs

  • jellyfinCT โ€” Ubuntu LXC running Jellyfin, Radarr, Sonarr and Prowlarr
  • jellyseerrCT โ€” Debian LXC running Jellyseerr via Docker
  • gameserver โ€” Ubuntu Server VM running CubeCoders AMP
  • displayserver โ€” Ubuntu Server VM running Grafana and Prometheus
  • windowsdesktop โ€” Windows 11 VM used as a download client
  • websiteCT โ€” Debian LXC hosting this website