blumeops/docs/changelog.d
Erich Blume 4ee643a81d
All checks were successful
Deploy Fly.io Proxy / deploy (push) Successful in 1m50s
Serve friendly error page when Fly.io proxy upstreams are unreachable (#133)
## Summary
- Adds a branded 503 error page served when upstreams are unreachable (indri offline, Tailscale tunnel down, emergency shutoff, etc.)
- Stale cache is still served first when available (`proxy_cache_use_stale` takes priority)
- Test endpoint at `docs.eblu.me/_error` to preview the page without killing upstreams
- `proxy_intercept_errors on` also catches error responses returned by the upstream itself

## Files Changed
- `fly/error.html` — Self-contained error page (dark theme, links to BlumeOps repo)
- `fly/nginx.conf` — `error_page`, `internal` location, `/_error` test location, `proxy_intercept_errors`
- `fly/Dockerfile` — COPY error.html into image

## Test Plan
- [ ] Deploy to Fly.io
- [ ] Visit `docs.eblu.me/_error` to verify the page renders
- [ ] Optionally stop indri/Tailscale to confirm the page shows on real 502/503/504

Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/133
2026-02-09 12:01:24 -08:00
..
.gitkeep Add towncrier changelog system (#86) 2026-02-03 11:48:13 -08:00
feature-fly-proxy-error-page.feature.md Serve friendly error page when Fly.io proxy upstreams are unreachable (#133) 2026-02-09 12:01:24 -08:00
fix-deploy-healthcheck-race.bugfix.md Fix 502 errors during Fly.io proxy deploys (#131) 2026-02-09 11:07:36 -08:00
fix-real-client-ip-logging.bugfix.md Log real client IPs via Fly-Client-IP header (#130) 2026-02-09 11:02:06 -08:00
fix-zero-downtime-deploy.infra.md Zero-downtime Fly.io deploys (#132) 2026-02-09 11:34:19 -08:00