2 Commits

Author SHA1 Message Date
Jose Luis Montañes
847a6c6881 deploy: fix healthcheck — hit 127.0.0.1 not localhost
wget inside the alpine container resolves `localhost` to ::1, but nginx
only binds IPv4 with `listen 80;`, so the healthcheck saw 'Connection
refused' even though the container was happily serving traffic to Caddy.
Pinning the check to 127.0.0.1 keeps it strictly IPv4.
2026-05-01 19:08:28 +02:00
Jose Luis Montañes
d3786c9768 deploy: add Dockerfile + nginx config for static hosting
The web/ directory is fully self-contained (index.html + worklet.js, all JS
deps pulled from esm.sh via the importmap). Package it as a tiny nginx:alpine
image so Coolify can build + serve it behind Caddy.

- Dockerfile: nginx:1.27-alpine, copies web/ to the document root, healthcheck.
- nginx.conf: serves /, no-cache for index.html and worklet.js (so engine
  changes land immediately after a redeploy), short cache for everything else,
  gzip on text payloads, JS MIME for AudioWorklet.
- .dockerignore: keep the image small (excludes Python sources, docs,
  references, sandbox is included since it's served from /sandbox/).
2026-05-01 18:58:55 +02:00