Self-hosting overview
A YAPCO site is two small things behind one address:
- Static files: the app and this documentation. There is no database; planners stay in each visitor’s browser.
- 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 ──> ChromiumTwo ways to run it
Section titled “Two ways to run it”| 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.
On your own domain
Section titled “On your own domain”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.
- Run with Docker or Install on Proxmox.
- Publish with a Cloudflare Tunnel (optional).
- Automatic deploys with Gitea and Jenkins (optional, Proxmox).
- Updating and maintenance.
The examples use planner.example.com; put your own address in its place.