This has been one of those projects that sees an upgrade month after month. Some of these services started on my Raspberry Pi 2B in 2014, or on a Linode server in 2010.

They’ve all coalesced here for now. As my hosting needs change, so will this setup.

Must evolve.

Content

Required Components

Up until now I’ve been happy running on the latest Pi flavor of $currentYear, but started to miss two distinct pieces:

  • Large set of disks, for archiving and backups.
  • x86 virtualization support, for MacOS and (less critically) game streaming VMs.

And so a higher caliber server must be built.

Hardware

Because of what is absolutely required in my setup, very cool SBCs like the RockPro64 must be left out. Every ARM board for that matter, as running an OpenCore MacOS VM puts a stop to that architecture (maybe not for long).

Those SBCs work wonderfully as a backup server, however.

With that in mind I decided to use my outgoing gaming rig with a processor upgrade and a few HDDs for this task.

System

  • Ryzen 3700x (8 core, 16 thread processor)
  • 64 GB of 3200MHz DDR4
  • x6 WD Easystore 10TB HDDs, shucked
  • NVME/SATA SSDs adding up to ~2TB, for container + vm storage
  • Fans, cases, PCIe to SATA cards, Ethernet cards, and other less interesting components.

Host VE

I set out with this particular rig to run Proxmox, mainly because of its price tag but also for its reputation as an excellent virtualization host. After a couple months of running, I could not recommend it more.

Software

A running list of software I keep on my server, in order of importance/usefulness/neat-factors:

Caddy Reverse Proxy

  • For my external facing services, I run Caddy reverse proxy behind a pfSense box

MacOS OpenCore VM

Home Assistant

  • Dedicated VM to hosting a Home Assistant docker container
  • MQTT python scripts to translate between differing outputs
  • Mosquitto as a bridging central from other machines

Development Server

  • VS Code Server – This is just so cool, I can run LineageOS builds that use all given cores + ram from my phone!
  • GitTea self hosted git service, comes in handy for mirroring and extremely private repos.
  • Drone CI for CI/CD of various services (WIP)
  • Sentry App / Server error alerting

Pi Hole

  • in an LXC container, blocks ads and makes local DNS entries incredibly easy

Matrix Synapse

Auxillary VM

Media / Cloud VM

Analytics

Web Servers

  • What you’re reading, containerized in an LXC and served by Caddy
  • Wordpress VMs for my fledgling startups

Volumio Music player

  • Audio card and a Bluetooth dongle passed through

Windows 10 Gaming

  • Passed through an RTX 2080 and can stream with Moonlight

Work Containers

  • Some scripts I use for work deployed in LXCs

The LXCs are evenly split between Alpine Linux and Ubuntu Server, depending on the application’s complexity. I tried turnkey, but it was usually a lot more than I ever needed.

I regularly watch these pages for new services to self host, and further wean myself off other people’s “cloud”.