Skip to content

Self-hosting overview

A YAPCO site is two small things behind one address:

  1. Static files: the app and this documentation. There is no database; planners stay in each visitor’s browser.
  2. The PDF export service: renders pages in a headless Chromium and returns the PDF. It keeps nothing.

Caddy serves the files and passes PDF requests to the export service:

browser ──> Caddy :8080 ──┬─ / the app
├─ /docs/* this documentation
└─ /api/export/* export service ──> Chromium
Docker Proxmox container
For Any computer or server with Docker A Proxmox host
You install Only Docker Nothing by hand: one script installs Node.js, Chromium and Caddy
Updates git pull and rebuild the image The script again, or Jenkins on every commit
Guide Run with Docker Install on Proxmox

Both use the same Caddy configuration (deploy/Caddyfile) and serve the same site on port 8080, with plain HTTP.

To reach the site from anywhere at https://planner.example.com, put a Cloudflare Tunnel in front of either. No port on your router is opened, and Cloudflare provides the certificate. Without a tunnel the site serves your own computer or network.

  1. Run with Docker or Install on Proxmox.
  2. Publish with a Cloudflare Tunnel (optional).
  3. Automatic deploys with Gitea and Jenkins (optional, Proxmox).
  4. Updating and maintenance.

The examples use planner.example.com; put your own address in its place.