Projects

Ryan Pek (b. 2001) | 3rd Year Undergraduate SUTD | Canned food enjoyer

About the Project

This is the infrastructure-as-code side of my homelab. The goal is to make the lab reproducible enough that spinning up a service is not a ritual involving screenshots, forgotten commands, and me trying to remember which VM I edited by hand three weeks ago.

The current stack uses Terraform for Proxmox VM creation and Ansible for OS/service configuration. On top of that, I am wiring Jenkins, Gitea, SOPS, internal DNS, Caddy, and monitoring into a workflow that can eventually act like a small internal platform.

Scope

Current State

The current version can create and configure many of the core VMs: DNS resolvers, authoritative DNS, Caddy, Vaultwarden, Gitea, Jenkins, monitoring, Terraform controller, media VMs, and K3s nodes. It is not perfect, but it is already much better than rebuilding everything manually.

Why I Care

This project is basically where my interests in Linux, networking, DevOps, SRE, and systems administration meet. It turns abstract ideas like idempotence, failure domains, DNS dependency chains, access control, and "source of truth" into things that can actually break my evening. That makes the learning stick.

Lessons Learned So Far