Atoll-compliant FastAPI backend for Carapace (prod). Took over port 47120 from the retired claude_viewer Flask service on 2026-04-21 (Phase 6 cutover).
Entry point: /home/gandalf/.virtualenvs/carapace_api/bin/carapace-api (shared venv with trunk — same editable install). Working dir: /home/gandalf/prod/carapace/packages/server (populated via rsync during cutover; vivo code-to-prod rule TBD pending release-manager registration). Config: /home/gandalf/prod/carapace/packages/server/config/settings-prod-ironclad.json (synced via vivo 'carapace api trunk (source)' rule from working — yes, misnamed; covers both envs for config). Systemd: carapace-api-prod.service + carapace-api-prod-watcher.{service,path} (watcher fires on config edits, not code — prod code eventually moves to release-manager). Caddy: reverse_proxy 127.0.0.1:47120 via carapace-api-prod.internal (tls internal). Secrets: carapace.atoll_service_token in ~/prod/secrets.json (aud=carapace, minted via /auth/admin/services/carapace/token on atoll-prod).
Same router surface as carapace-api-trunk. See [[Carapace]] wiki article for architecture.