Hi all — I’m running into a confusing Fly.io deploy issue and could use a second set of eyes.
Summary
-
fly deploycompletes successfully andfly releasesshows new releases being created. -
However, my website still serves the old HTML (same content length/etag), and
curlshows the page has aLast-Modifieddate from Sep 17, 2025. -
My Machines also seem to auto-stop, and sometimes end up in a stopped state.
What I see
Releases:
fly releasesshows recent releases (e.g., v15 complete ~11 minutes ago).
Machines:
fly machine listshows two machines; one is started, one is stopped (both on the same deployment image).
Logs:
- Logs show nginx starting normally, and I also see Fly autostopping machines due to “excess capacity”.
When I curl the site (even with no-cache headers), I still get the old content:
-
curl -i https://jack-mullen.fly.dev/ | head -n 20 -
curl -i -H "Cache-Control: no-cache" https://jack-mullen.fly.dev/ | head -n 20
Both return:
-
HTTP/2 200 -
last-modified: Wed, 17 Sep 2025 16:07:08 GMT -
same
etag, samecontent-length -
HTML begins with
<!-- site/index.html -->
So it doesn’t look like browser caching — it seems like the container is serving an old index.html baked into the image.
Questions
-
For an nginx/static site on Fly, what’s the best way to confirm which file nginx is serving and whether my Docker build is copying the correct directory?
-
Could this be caused by
DockerfileCOPY paths / a.dockerignoreexcluding my updated files / deploying from the wrong working directory (wrongfly.toml)? -
What’s the recommended config to avoid “all machines stopped” while debugging? (I saw
auto_stop_machineslogs; should I setmin_machines_running = 1?)
Environment
-
App:
jack-mullen -
Region:
dfw -
Serving via nginx in a container image
-
URL tested:
https://jack-mullen.fly.dev/
Happy to paste fly.toml, Dockerfile, and nginx config if that helps — just let me know what’s most useful. Thanks!