Solutions Engineer → DevOps
runs a family media platform and a DevOps lab off three machines in the same rack.
Building a 3-node Proxmox homelab, GitOps pipelines, and infrastructure-as-code. Solutions Engineer by day, DevOps by night.
Collection · pg. 02
Currently a Solutions Engineer in Hong Kong, building homelab-infra on the side — a 3-node Proxmox cluster that's both my family's private cloud and a production-grade DevOps playground: Terraform, Ansible, K3s, ArgoCD, and CI/CD, all as code.
"Live like no one else today, so that you can live like no one else tomorrow." — Dave Ramsey
Collection · pg. 03
Collection · pg. 04
A 3-node Proxmox cluster, built in public — a family media platform and a DevOps playground, everything as code. Phases 1–2 are live: the family tier (Jellyfin, Nextcloud, Immich photo backup, media automation with a self-healing watchdog) after a zero-downtime cutover, and the core-infra tier — self-hosted DNS, reverse proxy, Prometheus/Grafana/Loki observability with live email alerting, and GitLab CE. A GitLab Runner is registered and online; the first pipeline is next, VLAN segmentation is rolling out zone by zone, and the disposable K3s lab — torn down and rebuilt monthly — follows. If it isn't in git, it doesn't exist.
Traffic enters through a Cloudflare Tunnel (no open ports) to Jellyfin and Nextcloud — the only public services; every admin plane, including Immich's photo backup, is Tailscale-only. All three nodes are clustered: k8plus (family-prod — Jellyfin, Nextcloud, Immich), g11 (core-infra — DNS, reverse proxy, Prometheus/Grafana/Loki with email alerting, GitLab CE, and a registered GitLab Runner), and the MacBook (disposable K3s lab). The first CI pipeline is next. A MikroTik managed switch is in place, with VLAN segmentation rolling out zone by zone and a JetKVM for out-of-band console.
A 10-inch rack — printed by me, designed by the MakerWorld community. Small enough for a desk, rigid enough to hold real hardware: this is where the rest of this page actually runs. The third node, the MacBook Pro, sits right on top.
Printed from KWS Rack V2, MikroTik rack ears, GMKtec rack mount, and a universal rack shelf — all open designs on MakerWorld.
One git push travels through CI, security scanning (Trivy),
and ArgoCD to a live Kubernetes rollout — recorded end to end.
Grafana Fleet Overview (system health) and a public Uptime Kuma status page (service uptime) are both live — real infra, watchable in real time.
./demo.sh up stands up a mini k3s lab on AWS spot in ~4
minutes and prints a live URL; ./demo.sh down tears it down —
a few cents per run, nothing left behind.
Collection · pg. 11