Install on a VPS
On a server with a public IP, Caddy answers on ports 80 and 443 and gets its TLS certificate itself. Point your hostname’s DNS at the server first.
1. Data volume and secrets
Section titled “1. Data volume and secrets”-
Mount the data volume at
/srv/skillpouch. Encrypting it (LUKS) is recommended. -
From the repository’s
deploy/folder, create the secrets:sudo scripts/init-secrets.shIt fills
deploy/secrets/and never overwrites a file that exists (Secrets). -
Give the API container’s user (uid 10001) the folder for files:
sudo install -d -o 10001 -g 10001 -m 700 /srv/skillpouch/blobs
2. Settings
Section titled “2. Settings”cp env/stack.env.example env/stack.envcp env/api.env.example env/api.envFill both files (Configuration). In
deploy/Caddyfile, replace app.skillpouch.net with your hostname and the
email line with your address for the TLS certificate.
3. Start
Section titled “3. Start”docker compose --env-file env/stack.env up -d postgres caddyscripts/deploy.sh ghcr.io/skillpouch/api:<version>docker compose --env-file env/stack.env up -d workerdeploy.sh runs the database migrations, starts the first API color and
switches Caddy to it. See Deploys for updates and
rollbacks.