Perry Chouteau
All projects
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
  • GitHub Actions
  • Traefik
  • CertManager
  • 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.

The cluster

  • Self-hosted Kubernetes on Contabo.
  • Traefik as ingress, automatic TLS through CertManager.

Ce portfolio est déployer sur le cluster

The site you are reading is a 56 MB non-root nginx image deployed on that cluster. No Node runtime in production: the HTML is generated at build time, nginx only serves files.

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.