Table of Contents

I usually run VMs using Digital Ocean(referall link), but that gets a little expensive once you get more than a few running. There were quite a few services that I wanted to get setup and play around with, but I didn’t want a $100 monthly bill. I’ve been wanting to build a home server for a while but didn’t have a concrete reason to actually pull the trigger. But with my recent projects, like XeOSC and GoAtLight, I wanted to have a proper build server and CI setup so releasing them wouldn’t be a pain in the ass.

Proxmox

Why did I choose Proxmox? Well, I looked at the options out there. There’s really 3 big ones: VMWare, XCP-NG, and Proxmox. VMWare is quite expensive even for their discounted options, and while they do offer a free version it’s feature limited. XCP-NG looks great for larger deployments, but I’d probably want something like Xen Orchestra to go along with it. Unfortunately, you either have to pay or build from the sources if you want all of the features of Xen Orchestra, so that put me off from it. Proxmox is fully free with optional paid support. Proxmox allows you to run VMs using the KVM hypervisor and containers using LXC. It also offers ZFS support out the gate, so I’m using that for my install.

Components

  • Motherboard: AsRock Rack x470d4u (paid link)

    This board features IPMI(along with a built in GPU with VGA output), dual gigabit ethernet, dual M.2 NVMe slots, 8 SATA ports and support for up to 128GB of ECC RAM. The RAM slots are a bit too close to the AM4 socket to populate them all with the stock cooler, so I have another cooler on order that should arrive soon. I’m quite happy with this board overall, and definitely worth the premium over a consumber motherboard due to the IPMI.

  • CPU: AMD Ryzen 7 3700X (paid link)

    This is an 8 core, 16 thread CPU. I wanted to do a build with new parts, so I chose a Ryzen instead of some old Xeons. I haven’t been able to get this up past 40% usage so far, so I think it’ll do me good for a while.

  • RAM: Corsair Vengeance LPX 32GB 3200Mhz C16 DDR4 (paid link)

    Got this mainly because it was cheap and I’ve seen it used in enough builds to know it was gonna work. I decided to not go with ECC so that I could get more RAM for the same price. I have another 32GB of RAM on order to upgrade this to a total of 64GB.

  • SSD: PNY XLR8 CS3030 1TB M.2 PCIe NVMe (paid link)

    One of the cheapest M.2 NVMe SSDs with decent reviews on Amazon. The performance on this has been just fine from what I’ve seen. I’ve already managed to fill this up, so I’ll be adding in an 8TB HDD for backups and bulk storage. I might switch the boot drive to a couple SATA SSDs instead so I can use this entirely for VM storage.

  • PSU: Thermaltake 430W 80+ White PSU (paid link)

    Really just the cheapest PSU with decent ratings. I don’t need a lot of power since I probably won’t be adding a GPU or all that many hard drives.

  • Case: Cooler Master N200 (paid link)

    This is a pretty decent case for price. It’s small enough where everything just barely fits but it’s not too much of a pain to put together. I wish there were a couple more holes for cable management, but that’s about it.

Disclaimer: As an Amazon Associate I earn from qualifying purchases.

What I’m Running

  • PiHole

    I’m running PiHole using a LXC container. This acts as my house’s primary DNS both blocking ads and serving up local DNS names for the services I run.

  • GitLab

    I’m running an instance of Gitlab to host all of my personal code. I like the privacy it provides and I’ll be putting the continuous integration features to the test soon.

  • Netbox

    This is an awesome project made by Digital Ocean. It allows you to document everything on your network, essentially an excel spreadsheet but actually good. I can see all IP address of everything on the network and every cable that connects them. Has already come in handy to look stuff up.

  • Jellyfin

    Jellyfin is a fork of Emby before Emby closed up their source code. I chose to install this instead of Plex because it’s fully open source. Plex’s auth servers were actually down the day I installed Jellyfin, so that’s probably a sign to stick with Jellyfin.

  • Minecraft server

    I’m running a Minecraft server using PaperMC for myself and a few friends. This is the VM taking up the most resources, actually. This would be really hard for me to justify paying for, but it costs me nothing to keep it running on my own server.

  • Saltstack

    I managed to get the salt master setup on a FreeBSD server, but I have yet to use it to its full potential. I’ll be using this to deploy logging and metric gathering to servers I run.

Other Stuff

In additon to the Proxmox server, I also picked up a Mikrotik RB4011(paid link) to act as my main router and an EnGenius EAP1250(paid link) to act as my main WAP. I’ve been quite happy with the Mikrotik router; there’s a bit of a learning curve, but it’s pretty great once your figure things out. The RB4011 may actually be a little overkill for my needs, but I’ll be connecting it to a switch using its 10gig port so I can do inter-vlan routing.

I picked up an EnGenius WAP instead of one of Mikrotik’s because I wanted to try out a few different companies' products. I’ve found the EAP1250 to be adequate for what I’m using it for and setting it up wasn’t too hard. It’s able to give me my full 100mbps internet speed from any of my devices, so that’s good enough for me.

Overall, I’m really happy with the setup I have. I just need a bit more storage and RAM, but I have parts on the way to upgrade those and I’ll do a post once those arrive.