Deployment

Pipeline

On every push to main, the Build, publish & deploy workflow:

  1. Determines the version with GitVersion.
  2. Builds a Docker image and pushes it to GitHub Container Registry (ghcr.io/guibranco/webhookshandler), tagged latest and with the resolved SemVer.
  3. Connects over SSH to the production host and runs docker compose pull && docker compose up -d, then prunes old images.
  4. 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/health every 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).