LiveCloud & infrastructure
Vocal30
January 2025 — Present · Vocal30
Vocal30 is the name all my dev, DevOps, cloud native and webapp work goes under. In practice it is also a self-hosted Kubernetes cluster I run end to end: I build, push to my own registry hosted on the cluster, and Kubernetes pulls the image from there. No managed service.
- Kubernetes
- Podman
- Helm
- Traefik
- CertManager
- Private registry
- Cilium
- Postgres
- Secrets
- GitHub Actions
The pieces

portfolio
This site. Astro, served by non-root nginx on the cluster.
- Astro
- nginx
- Podman

vocal30.com
The vocal30.com showcase site.
- Vite
- React
- TypeScript
- Podman
- GitHub Actions

gonesboard.games
A passionate team focused on culture. A showcase site for gonesboard.games to highlight their board game.
- Next.js
- React
- TypeScript

cluster
The self-hosted Kubernetes running everything else.
- Kubernetes
- Traefik
- CertManager
- Cilium
- Private registry
The chain
- GitHub Actions builds the app image with Podman.
- The image is pushed to my Docker registry — hosted on the cluster itself,
- Kubernetes pulls the image from that registry and deploys.
What's next
FluxCD and image update automation, for full GitOps where the cluster picks up new versions on its own. Not in place yet.