Eris: The Lab


xkcd file transfer

Eris, named after the Greek goddess of chaos, encapsulates the spirit of this lab. My ambition is to eventually summon "Eris" in a manner akin to Tony Stark's "Jarvis," thereby accessing any required service with ease. Despite Richard's objections to my penchant for naming applications after Greek deities. But hey, deal with it Richard!

Update Coming soon :)

Network K3S

Networking


xkcd file transfer

The router is the Protectli Vault FW4B, running PfSense. It was a bit pricey, but this guy is a tiny powerhouse!

The network is currently seggregated into 4 VLANS: public wifi, private wifi, always VPN'd devices, and the general all else internal net. The VPN'd VLAN is setup as an interface for a Wiregaurd tunnel, which is used to route all traffic for that interface (it has firewall rules to prevent any WAN untunneled packets). I also have an OpenVPN server setup because a specific type of network traffic only allows TCP streams which Wiregaurd doesn't support.

I have a Raspberry Pi 4 running PowerDNS, which is used as the primary DNS server for the network and it's configured to use NextDNS for the upstream provider. I also have a local TailScale node running on the Pi 4 and a remote node in my parents house. I use the remote node to watch Netflix (to mask as same household devices). I'd like to automatically route Netflix traffic through the remote node but have run into MTU issues with the DNS. For now, I manually route the traffic by toggling firewall rules for devices like my TV.

The access point is a Netgear WAX214PA which has VLAN support for the wireless networks.

The main switch is the TP-Link SG108E. It's a simple 8-port managed switch that VLAN capable. And finally, the trusty Linksys LGS105 which I use for ocassional testing.

Physical Servers

Let's get to the juicy bones of what's really making this lab tick. I've got the two old/previous desktops that I've Frankenstein-ed into physical servers, along with Raspberry Pis, ESPs and other I.O.T. devices. It's a hot mess, but it works. I used to run ProxMox on both in a cluser, but beacuse I virtualized TrueNAS and used that to provide the majority of my labs storage, I eventually ran out of the 256GB in the nodes. So now they're seperate nodes, no paritey.

There are a bunch of issues with the current setup and I hope to eventually move to a more robust solution. While I've eyed OpenStack for a bit, I'm nowhere near multitenancy datacenter like needs (maybe one day). The goal for now is to move my storage to a dedicated machine which will act as shared storage over NFS for a ProxMox cluster (upgrading to 10Gb ideally). If I can in the future I'd like to move to a Ceph cluster for storage but I don't have the hardware ($$$) to justify that yet. For now the upcoming storage upgrade will be a seperate machine with CMR drives (my IO is struggling with the SMR drives) and not running running RAIDZ1 ;), hopefully coupled with an L2 10Gb networking updgrade.

Server 1: Zeus


xkcd file transfer

THE FATHER OF ALL

  • Intel i7-6700k

  • 32GB DDR4

  • NVIDIA RTX 3050 (Patched drivers for transcoding)

  • 1 PNY 250Gb SSD (OS)

  • 4x Seagate BarraCuda 4Tb Drive (RAIDZ1) (These are SMR drives, I don't reccommend for an NFS store)

  • 2x 2Tb random Drives (Pool 2 - RAIDZ1)

  • 4x 1Tb random NVME drives (Cache) Zeus is the granddaddy of all my servers. He's been through more disasters than a Greek tragedy. But like a fine wine, he only gets better with age. Most of the action happens here, with a plethora of virtual machines running amok. The main players include:

  • Storage | TrueNas Scale

  • Apollo | Debian w/ Portainer (QBt, the *arr’s, etc)

  • Artemis | Debian w/ Portainer

  • Hades | Debian w/ Pterodactyl

  • Plex server | Debian 22.04

  • Nextcloud server | Ubuntu 20.04

Can you tell I like Debian based distros? ($User is not in the sudoers file. This incident will be reported.)

Server 2: Poseidon


xkcd file transfer

We don't talk about this state...

THE GOD OF THE SEA

Specs: AMD FX 6300, 8GB DDR3, 250GB SSD, 2x 1TB HDD

Poseidon doubles as the secondary server for the Lab. No longer part of a cluster, he hosts a backup VM for TrueNas Sync and some mirrors, along with some utilities like an SMTP testing server and some testing environments. I'll likely retire this server soon, but for now it's still chugging along.

Hades: The Gaming Servers

THE GOD OF THE UNDERWORLD, and mischief...

Hades uesd to be couple of inordinately large python scripts that created Minecraft, Rust, and Valheim game servers by gaming the cloud 'new-account-credit' system. It used Selenium, Privacy.com and Paramiko to create new cloud accounts with free credits, deploy a server, and then connect and manage the server over SSH. With the intent of creating a free game server everytime. But it was a mess, rarley worked, and most cloud providers have since stopped accepting such card providers like Privacy. I've since moved to using Pterodactyl to manage the game servers.

Apollo: The Media Server

THE SON OF ZEUS AND LEADER OF THE MUSES


sony microsoft mpaa riaa apple suck

Apollo is a one-stop shop for all my family and friends' media needs. It was one of the first things I virtualized, hence the name, and it's one of a few public-facing services. It hosts all the media I have for my family and friends to access, as well as a cloud storage solution for them to use because why trust big corp with your data when you can host it on my unencrypted, residential, 2015 mid-tier consumer hardware-based data center?

Apollo is also no landlubber — he frequents the high seas with ease, thanks to his mighty crew. Among his crew, he counts quartermaster: qBittorrent, Gunners: Sonarr and Radarr, Sailing Master: Overseerr, and Powder Monkeys: Prowler, Jacket, and flare resolver.

I use Plex for streaming, while I prefer the simplicity of Jellyfin (and also the ability to modify playback speed, WHY DOESN’T PLEX SUPPORT THIS YET, it’s been a decade), Jellyfin doesn't have good app support, especially for TVs. The Plex server is hosted as a seperate Debian VM on Zeus with GPU passthrough as I couldn't get the patched GPU GPU passthrough to work with the LinuxIO image.

Artemis: The Deployment Environment

THE GODDESS OF BIRTHING

Artemis gives life to my code. She is a collection of tools and containers for self-hosted deplyments. I host my own GitLab instance here, which is used for private and personal projects (those I don't wish to be scraped by co-pilot...) and to host some CI/CD pipelines.

Some of the applications I host are:

  • Portainer
  • Personal website
  • APIs for my personal projects
  • A few web apps
  • W.I.P Graphana + Prometheus monitoring stack
  • Discord bots
  • Web scraping scripts

That's all folks