Personal GitOps repo for my Kubernetes clusters.
| Service | URL | Health | Uptime (24h) |
|---|---|---|---|
| Woodpecker CI | ci.codextechnologies.org | ||
| ntfy | ntfy.codextechnologies.org | ||
| Headscale VPN | vpn.codextechnologies.org | ||
| Headplane Admin | vpn.codextechnologies.org/admin | ||
| Yopass | secrets.codextechnologies.org | ||
| Grafana | monitoring.codextechnologies.org | ||
| Loki | internal | ||
| Blog | piotrkrzysztof.dev | ||
| Honeywatch Dashboard | honey.piotrkrzysztof.dev | ||
| Honeywatch API | honey.piotrkrzysztof.dev/api | ||
| Usher | usher.piotrkrzysztof.dev | ||
| Usher API | usher-api.piotrkrzysztof.dev | ||
| c-pi.org Status | status.c-pi.org |
apps/ # ArgoCD Application manifests (bootstrap)
base/ # Shared Kustomize bases (cluster-agnostic)
clusters/ # Cluster-specific overlays and configs
compose/ # Docker Compose setups
- Hetzner — k3s single-node with Traefik ingress, cert-manager (Let's Encrypt), and Sealed Secrets. Runs the observability stack (Prometheus, Loki, Grafana, Alloy) and the ArgoCD that manages both clusters.
- OCI — single-node rke2 (arm64), reachable only over the headscale tailnet. Registered in the Hetzner ArgoCD across that tunnel; hosts WKE, the native arm64 Woodpecker agent and the host telemetry agent (
clusters/oci/observability). Tailnet prerequisites and the bootstrap order live in clusters/oci/README.md.