A custom entrypoint generates /etc/nginx/.htpasswd at container startup
from AUTH_USER and AUTH_PASSWORD env vars (via openssl). No credentials
are baked into the image. Pass AUTH_USER and AUTH_PASSWORD in docker-compose.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Multi-stage Dockerfile: Node builds static assets, nginx serves them
- nginx proxies /api/* to football-data.org and injects X-Auth-Token
server-side via FOOTBALL_API_KEY env var (key never in browser bundle)
- docker-compose.yml exposes the app on port 3000
- Extract apiFetch() helper: sends key in dev (Vite proxy), skips in prod
- .env.example updated with both dev and production key vars
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Vite + React app using football-data.org API to display standings
and match details for 12 competitions. Supports competition switching,
team match history modal, and Vite proxy to handle CORS.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>