Sky Palette Infra Tutorial
A guided walkthrough of the Sky Palette homelab — single-node Kubernetes, GitOps with ArgoCD, full observability, self-hosted Forgejo with AI code review, and the application patterns that run on top of it.
Who this is for
- You, weeks from now. Most of this exists because future-you will forget how present-you wired things together. The site is a memory aid with executable commands.
- A new collaborator. Enough context to onboard without a screen share.
- Anyone curious how a homelab can dogfood a real GitOps loop, complete with PR review bots, encrypted secrets, and a path to commercial scale.
What’s here
Each chapter follows the same pattern: what it does · why it’s there ·
how it’s wired · what fails and how you’d notice. Where helpful, the
exact kubectl / gh / shell incantation is included so you can run it
against the live cluster.
The site itself is served by the stack it documents.
That means: every break in the deploy pipeline shows up here first.A 30-second tour
The homelab is one Ubuntu box (k8s-worker-3090 at 192.168.1.253) running:
- A kubeadm-bootstrapped Kubernetes control plane + node, with
kube-flannelfor pod networking. - ArgoCD continuously reconciling cluster state from
git.skypalette.ai/skyadmin/gitops. - Forgejo + Actions runner + OCI registry + PR-Agent (AI reviewer), all in a Docker Compose stack on the same host.
- A Cloudflare tunnel terminating
*.skypalette.ai→ in-clusteringress-nginx, plus a separate tunnel inside the Forgejo stack forgit.skypalette.ai. - kube-prometheus-stack (Prometheus + Grafana + Alertmanager) + Loki
- Alloy for telemetry, with alerts pushed to ntfy.sh.
- Velero for cluster backups, Vaultwarden for secrets the operator needs interactively, and SOPS + KSOPS for secrets ArgoCD applies.
If you only read one page after this one, make it Overview & Architecture.