HedgeDoc on Kubernetes

What I’m building

HedgeDoc (real-time collaborative markdown) with a local Docker Compose stack and a Kubernetes deployment path — namespace, Postgres, PVC, secrets, and Ingress. The K8s manifests live under deploy/k8s/ in the hedgedoc project folder.

Why HedgeDoc

I wanted a personal notes surface that is not locked to a vendor, runs on my homelab, and teaches the full stack: database persistence, session secrets, reverse proxy, and the gap between “works in Compose” and “works on a cluster.”

What it covers

  • Existing Compose + Caddy setup for local use
  • K8s manifests with a single DB_URL secret (no fragile env var interpolation)
  • README with Kind/minikube flow and a note on Cloudflare Tunnel for always-on hosting (Pages cannot run this workload)

Connection to my day job

Every platform team eventually ships stateful services — not just stateless APIs. Postgres backing stores, PVC sizing, and secret rotation are the unglamorous work that determines whether a tool survives past the demo phase.

Repo

Source lives in the sandbox monorepo under projects/hedgedoc/. K8s files: projects/hedgedoc/deploy/k8s/.