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/).
600 B
600 B