6 Commits

Author SHA1 Message Date
89cdeb0967 Fix HTML chart output path for nobody container user
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.
2026-02-23 19:46:29 -07:00
c0826e1a36 Set MPLCONFIGDIR for matplotlib in nobody container
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.
2026-02-23 19:45:08 -07:00
f6e1fee392 Include viz extras in MCP container image
Adds --extra viz to uv sync so matplotlib and plotly are available
for visualize_tides and visualize_conditions in production.
2026-02-23 19:39:25 -07:00
9d25f5efe3 Fix docs root showing Caddy default page, fix MCP healthcheck
- 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)
2026-02-23 05:44:58 -07:00
4a358050f0 Fix MCP Dockerfile: include README.md for hatchling build
hatchling validates readme field during wheel build — the file
must be present in the Docker build context.
2026-02-22 19:17:51 -07:00
a02d660764 Add Starlight docs site and MCP HTTP transport
- 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
2026-02-22 19:05:12 -07:00