Use MCNOAA_CHARTS_DIR env var (defaults to artifacts/charts/ for
local dev) so the container's nobody user can write HTML charts
to /tmp/charts instead of the read-only /app working directory.
The nobody user has no writable home directory, so matplotlib falls
back to creating a temporary cache dir on every import. Setting
MPLCONFIGDIR to /tmp/matplotlib gives it a stable writable path.
- Clear /usr/share/caddy/* before copying build output to remove
the default "Caddy works!" index.html from the base image
- Add root redirect: / -> /getting-started/ (permanent)
- Fix try_files to use {path}/index.html for Starlight directories
- Switch MCP healthcheck to TCP socket (GET /mcp returns 406
without proper Accept headers)
- Starlight documentation with 12 Diátaxis-organized pages covering
getting started, how-to guides, reference, and architecture
- Docker Compose with two services: docs (Starlight/Caddy) and
mcp (FastMCP streamable-http), both behind caddy-docker-proxy
- Env-based transport selection in server.py — stdio default preserved,
MCP_TRANSPORT=streamable-http activates HTTP mode for Docker
- Ocean/maritime theme with dark mode default