Motivka

Hetzner VPS Production Deployment

Deployed Motivka to a Hetzner VPS with Docker Compose, Caddy reverse proxy with automatic TLS, and a CI/CD pipeline via GitHub Actions.

1 Phases
3 Tasks
4 Days

Production Infrastructure

The first production deployment of Motivka landed on a Hetzner Cloud VPS. The stack runs four Docker containers orchestrated by Docker Compose: Caddy for HTTPS termination and routing, SvelteKit for the frontend, PocketBase for the backend database, and Qdrant for vector search.

Caddy handles automatic Let's Encrypt certificate provisioning and renewal. The GitHub Actions pipeline builds Docker images, pushes them to GHCR, then SSHes into the VPS to pull and restart services. A health check loop waits for all services to become healthy before running a final HTTP smoke test.

This deployment pattern has since been extended with additional services (AI orchestrator, agent, imouto) and remains the foundation for all production releases.

Features Delivered

Infrastructure

  • Docker Compose production stack — Four-service architecture with Caddy, SvelteKit, PocketBase, and Qdrant
  • GitHub Actions CI/CD — Automated build, push to GHCR, and SSH deploy to Hetzner VPS
  • Automatic TLS via Caddy — Let's Encrypt certificates with automatic renewal