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.
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. 10