banner

Summary

This folder contains various guides, learnings, and implementation details from my home server.

A brief history of TurtleNet

Pre-TurtleNet

I’ve been tinkering with Linux ever since I build my first PC and realized computers were cool. Most of my earlier days messing with computer systems involved dotfiles and otherwise making my desktop interface prettier/more functional.

Eventually I ran into things I wanted to self-host (like various game servers), and slowly started ship-of-theseusing my Linux desktop into a machine that ran 24/7.

My very first “server” ran on an AMD Ryzen 3 2200G with all of its integrated graphics glory, 8GB of RAM, and a 256GB Samsung SSD. It was kind of loud (and also in my bedroom), so it only ran when needed and I turned it off at night. If I was away and needed to mess with it, I triggered a wake-on-LAN signal routed through some clever port-forwarding (which only worked 50% of the time), and ran a Windows Remote Desktop connection into it.

Season One

After I joined the Open Computing Facility and had the opportunity to mess with real rack-mount servers hosting real services that people actually used, I felt inspired to build a more respectable self-hosting setup of my own.

At the time I had just built a new computer (with a Ryxen 7 3700x, 64GB of RAM and a GTX 1080)— but realized that:

  1. I was rarely around to use it.
  2. I often had a need for the compute power on-the-go (for school projects, extra cloud storage, etc.)

I made the decision to retire my computer as a desktop, wiped the drive, and installed Proxmox.

As of 2023, a ~year after starting the conversion, this is what my server architecture looked like:

I wrote a series about the process I went through to make this on Hashnode. This was the second major piece of writing I’ve ever created; after notes.bencuan.me started taking off I realized that people would also really appreciate hearing about TurtleNet! To this day I still run into folks who tell me how much it’s helped them create their own homelabs 🥺

aside: why is it called TurtleNet?

  1. I like turtles.
  2. I now name all of my physical machines after animals.
  3. I made an extremely cringe webtoon as an unreasonably high-effort method of realizing that turtles have shells, and so does your computer.

TODOs and Season 2

A decent amount has changed about TurtleNet, and my abilities to run a server have grown even further now that I get to help run them full-time! (I can still hardly believe I actually get paid to do this, lol)

I’m currently in the process of writing TurtleNet Season 2, which will aim to replace S1 in its entirety and provide some reflections on what I’ve learned in the last few years.

Many of my early drafts and fragments will end up somewhere around here- hope you’ll enjoy and leave some feedback while they’re around!

An incomplete changelog from S1 to S2

  • Using TrueNAS Scale instead of Core, which is Linux-based instead of BSD
    • Installing apps and gpu passthrough on TrueNAS
  • Migrating to TailScale from ZeroTier for intranetworking
  • Adding a whole bunch of new services (like isso, goatcounter, api improvements)
  • Installing Proxmox Backup Server and configuring backup schedules
  • Hardware network switches, home wifi setup with Ubiquiti
  • Status page and alerts
  • Security/DDoS protection
  • UPS config and automatic graceful shutdown/startup