Deployment
Pipeline
On every push to main, the Build, publish & deploy workflow:
- Determines the version with GitVersion.
- Builds a Docker image and pushes it to GitHub Container Registry (
ghcr.io/guibranco/webhookshandler), taggedlatestand with the resolved SemVer. - Connects over SSH to the production host and runs
docker compose pull && docker compose up -d, then prunes old images. - Creates a GitHub Release for the version.
Hosting
- The service runs on an Oracle Cloud Infrastructure (OCI) Always Free VM, reachable in production at webhooks.straccini.com.
- NGINX sits in front as a reverse proxy and terminates SSL (Let’s Encrypt via Certbot).
- UptimeRobot polls
/api/healthevery 5 minutes (the free plan’s minimum interval).
Docs site
This documentation site is built separately from the app: the Deploy docs to GitHub Pages workflow builds docs/ with Jekyll and Just the Docs on every push to main that touches docs/**, and publishes it via GitHub Pages (configured to deploy from GitHub Actions, not a branch).