Push to deploy
Commit to main and a Gitea Actions workflow builds
a fresh image tagged with the commit SHA, pushes it, and tells
Swarm to roll the new version in.
Deployment demo
git push.Gitea Actions builds the container, pushes to the internal registry, then Swarm does a zero-downtime rolling update behind Traefik. No manual steps after the first deploy.
Commit to main and a Gitea Actions workflow builds
a fresh image tagged with the commit SHA, pushes it, and tells
Swarm to roll the new version in.
Two replicas spread across worker nodes. The
start-first update order brings the new container
up before draining the old one — no dropped requests.
Traefik watches Swarm labels, discovers the service on the
traefik-public overlay, and fetches a Let’s
Encrypt certificate without any extra config.
git.dev.serso.org with Gitea Actions.nginx:1.27-alpine serving /public on port 8080.traefik-public overlay, Let’s Encrypt resolver.docker service update --image <sha> testwebsite_web over SSH.Questions or want to reuse this template for another app? Drop a line at robin@serso.be.