Kubernetes manifests for everything self-hosted on my k3s cluster: how each app is deployed, configured, and wired together
https://mitko.sh
- Go Template 48.6%
- HTML 47.1%
- Go 3%
- Shell 0.9%
- Dockerfile 0.4%
| done | ||
| test | ||
| to-do | ||
| README.md | ||
yamls
My k3s hosted applications and workflows — the Kubernetes manifests and Helm configs behind everything running on the cluster, organized by service.
This is the application layer. Cluster provisioning itself (NixOS, Ansible, disko, k3s) lives in a separate infrastructure-as-code repo: k3s-setup.
Layout
done/ services that are live on the cluster
to-do/ staged / not yet deployed
test/ experiments, scratch manifests
Each service gets its own subdirectory with whatever mix of raw manifests, Kustomize, or vendored Helm charts it needs.
Services
| Service | Status | Notes |
|---|---|---|
| Longhorn | done | cluster storage |
| MetalLB | done | bare-metal LoadBalancer |
| cert-manager / Cloudflare DNS-01 | done | TLS certs |
| Harbor | done | container registry |
| Forgejo | to-do | git hosting |
| n8n | done | workflow automation |
| mox | done | mail server |
| Synapse (Matrix) | to-do | chat |
| coturn | to-do | TURN/STUN for Synapse |
| XMPP | to-do | chat |
| Jellyfin | done | media |
| Wiki | done | personal wiki |
| Monero node | to-do | p2p + RPC over Tor |
| ArgoCD | done | GitOps |
| Family sites (amalia, etc.) | done | small personal/family web apps |
The Secrets
No real credentials are committed here — every Secret manifest's
stringData/data holds the placeholder value.
Status
Personal homelab config — expect rough edges, half-finished services in
to-do/, and experiments in test/ that aren't meant to run anywhere.