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.
Live deployment demo
git push.
Gitea Actions picks up every commit on main, builds a
fresh container image tagged with the commit SHA, pushes it to the
internal registry, then SSHes into the Swarm manager for a
zero-downtime rolling update behind Traefik. You read this line because
the whole pipeline just ran end-to-end.
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.