Bring-up
Requires Docker + Docker Compose v2 and an NVIDIA GPU with the NVIDIA Container Toolkit. Around 10 GB free disk for the bundled classifier model.
Configuration
Backend config is read from environment variables loaded via the.env file the bootstrap writes. Override values directly in .env, or use the setup set-model subcommand to update model-related settings.
Endpoints
The Go server exposes three externally-visible surfaces on the backend port (default8080).
WebSocket ingestion
Authorization: Bearer <api_key> on the upgrade. Frames are protobuf-encoded ClientFrame (login / paired_batch / mcp_inventory) and ServerFrame (login_ack / verdict).
Health probes
Compose’s healthcheck for the backend service polls
/readyz, so docker compose --profile llm ps reporting (healthy) is the canonical “stack is fully up” signal.
Dashboard API
REST endpoints under/api/ for the Next.js dashboard - authentication, agents, policies, events, verdicts, reviews, webhooks. These are internal to the bundled dashboard at v1 and are not part of a stable public API; see the repo source for current routes.
Architecture
The classifier is the bundled Llama.cpp container running Gemma 4 (E2B or E4B by default). The model is downloaded by the bootstrap step; swap variants viasetup set-model --gguf <name>.
Operational tasks
Reset the admin password
reset-password again. Pass --password <plaintext> for a non-interactive flow.
Switch the local GGUF
ADRIAN_LLM_MODEL_PATH in .env and the llm service picks up the new model on next restart. The GGUF must already be present under ./models/.
