But, why?

Having a dedicated environment to tinker and experiment with random ideas is always nice. Most folks do this on their local environments (laptop/workstations), but it has its limitations:

  1. Long running jobs can be a pain to setup, especially on a computer that is setup for multiple use cases (eg. dev in the day, game in the evening).
  2. Experimenting with clusters (multiple nodes) using VMs can get impractical/overwhelming for a single machine.
  3. Local environments have to be functional at all times, so you cannot do risky changes which might break the environment.

In addition, having separate, always-available compute and storage besides your main dev machine can have the following advantages:

  1. Ability to self host services, like the following:
    • Remote, 1-click-setup coding environments
    • Password manager
    • Github actions runner for CI/CD
    • Photo library
    • Local LLM
  2. Local, fast-access network attached storage (NAS) for backups, large datasets, media storage etc.
  3. Dev, staging (or even prod, if you are ambitious enough) environments for personal projects.

All of these without the worry of paying $$ to host things in the cloud. According to my estimates, the monthly cost (mainly electricity) of running these machines is 10-20x lower than the same infra in any cloud env.

Here’s a glimpse of a few services I am running as of this moment.

Hardware overview

Compute

3 nodes in a Proxmox (VM hypervisor) cluster. Specs:

Name Overview CPU RAM Local SSD storage
arete Dell 5080 Micro i5-10500T, 6C/12T 32 GB 500 GB
phoenix Lenovo M900 Tiny i5-6500T, 4C/4T 16 GB 256 GB
thor Custom PC R7-3700X, 8C/16T 64 GB 256 GB

So a total of 32vCPUs, 112GB of RAM available.

Storage

The NAS is hosted as a Proxmox VM running TrueNAS. Overall usable capacity of ~10 TB, powered by a pool consisting of 2 mirrored vdevs with the following disks.

Model Capacity Count
WD DC HC510 10TB 2
Seagate BarraCuda 1TB 3

The Seagate drives are a leftover from a previous version of this storage array, which I keep running because why not.

Networking

The main device is a TP-Link ER-605, which accepts WAN from two ISPs and handles failover. There’s a 2.5GbE dumb switch which connects to other devices (like my workstation), but everything is still running 1GbE right now. Plan is to upgrade this in the future.