Cache-Control Fixes for Stale Content and Traefik Caching
🎨 Improvements
- server: Changed
Cache-Controlforindex.htmlanddownload-sw.jsfromno-cache, must-revalidatetono-store.no-cachepermits storing the response and requires proxy revalidation via ETag or Last-Modified headers, which SkySend does not set - causing Traefik's caching middleware to fall back to its own TTL and serve stale HTML after a deployment.no-storeis unconditional and prevents any proxy from storing the response, eliminating the need for a Traefik restart after updates. - server: Added a global
Cache-Control: no-storemiddleware to all/api/*routes. Previously only the successful download stream response carried this header. Error responses from any API endpoint (e.g. a transient 500 from the download route) had no cache directive, allowing Traefik to cache them. A single cached error response caused all subsequent requests to the same URL to receive the cached error until the proxy was restarted.
🐳 Docker
- Image:
skyfay/skysend:v2.9.5 - Also tagged as:
latest,v2 - Platforms: linux/amd64, linux/arm64