Pipeline
- 1LocalStatic files on port 4000, no build step
- 2GitHubBranch, pull request, squash merge
- 3Imagenginx:alpine, pushed to Docker Hub
- 4VPSCompose pull behind Traefik
- 5HTTPSLet's Encrypt via TLS-ALPN-01
Environment
- Domain
testweb.4volty.com- Host
- Ubuntu 22.04 · hostkey.com
- Image
4volty/testweb- Server
- nginx on Alpine
- Proxy
- Traefik, Docker label routing
- Certificate
- Let's Encrypt
Notes
No framework, no bundler, no external requests. The page is three files, and the container is those same three files behind nginx — so what passes review locally is exactly what ships.
Health endpoint: /healthz returns ok in both the dev
server and the image, which is what the container healthcheck polls.