Install on Proxmox
1. Create the container
Section titled “1. Create the container”In the Proxmox web UI, open the Shell of your node (not of a container). Download a Debian template once (Debian 12 or 13 both work):
pveam updatepveam available --section system | grep debianDownload the name it prints (the version changes over time), for example:
pveam download local debian-13-standard_13.1-2_amd64.tar.zstCreate and start the container. Pick a free ID instead of 120, and your own storage names:
pct create 120 local:vztmpl/debian-13-standard_13.1-2_amd64.tar.zst --hostname yapco --cores 2 --memory 4096 --swap 1024 --rootfs local-lvm:16 --net0 name=eth0,bridge=vmbr0,ip=dhcp --unprivileged 1 --features nesting=1 --onboot 1 --start 1The same in the web UI: Create CT → hostname yapco, the Debian template, disk 16 GB,
2 cores, 4096 MB memory, DHCP, Unprivileged and Nesting on.
4 GB of memory matters: building the app with less can fail.
2. Run the install script
Section titled “2. Run the install script”Open a shell in the container as root:
pct enter 120Then:
apt-get update && apt-get install -y curlcurl -fsSL https://raw.githubusercontent.com/mdyzma/yapco/main/deploy/proxmox/install.sh | YAPCO_ORIGIN=https://planner.example.com shIt takes a few minutes and:
- installs Node.js 24, Chromium and Caddy;
- creates the user
yapcoand clones the repository into/opt/yapco/app; - installs the dependencies and builds the app and this documentation;
- starts yapco-export (systemd), the PDF service on
127.0.0.1:8787; - starts Caddy on port 8080: the app,
/docs, and/api/export/*, with strict security headers; - checks everything and ends with
Done. Serving ….
Settings
Section titled “Settings”| Variable | Meaning | Default |
|---|---|---|
YAPCO_ORIGIN |
Your public address; the PDF service accepts pages only from it and from the LAN address | none (LAN only) |
YAPCO_REPO |
Where to clone from, e.g. your Gitea mirror | GitHub |
YAPCO_BRANCH |
The branch | main |
YAPCO_COMMIT |
Deploy exactly this commit | the latest on the branch |
Keep your real address out of the repository: pass it as YAPCO_ORIGIN when you run the
script, or keep it in Jenkins (see Automatic deploys).
Check it
Section titled “Check it”From any computer in your LAN, open http://<container address>:8080. Create a planner and make
a PDF of one month; open http://<container address>:8080/docs/ for this documentation.
If a check fails:
journalctl -u yapco-export -n 50journalctl -u caddy -n 50