Running SAW in Docker gives you a self-contained deployment that works the same way on any machine or cloud environment. The includedDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/samkit511/SAW---Security-Analyst-Workspace/llms.txt
Use this file to discover all available pages before exploring further.
Dockerfile uses a slim Python 3.11 base image, installs dependencies, and starts Uvicorn on port 8080 — the same port Cloud Run and other managed container platforms expect by default.
Build the Docker image
From the project root (where the The build process runs these steps from the
Dockerfile lives), build the image and tag it:Dockerfile:PYTHONDONTWRITEBYTECODE and PYTHONUNBUFFERED keep the image clean and ensure logs stream directly to your terminal without buffering.Run the container
Start the container and map port 8080 from the container to your host:Once running, the server is reachable at
http://localhost:8080. The root endpoint / serves the interactive dashboard UI.The
CMD in the Dockerfile does not include --reload. Hot-reloading is disabled in the container image by design — it requires filesystem watch access that containers don’t reliably provide, and it is not appropriate for production use.Pass your Gemini API key
To enable live LLM-assisted triage, pass your Google or Gemini API key as an environment variable at runtime:If you prefer to use a
.env file instead of inline flags, mount it into the container:Key environment variables
These are the variables most relevant to a containerized deployment. See the full list in the environment variables reference.| Variable | Default | Description |
|---|---|---|
PORT | 8080 | Port the server listens on |
ASA_API_KEY | demo | API key required in the x-api-key header for protected endpoints |
ASA_MODE | HYBRID | Execution mode: HYBRID enables both deterministic and LLM-assisted pipelines |
GOOGLE_API_KEY | (empty) | Google API key for Gemini and ADK calls |
GEMINI_API_KEY | (empty) | Alternative Gemini credential — set either this or GOOGLE_API_KEY |
ASA_ENABLE_ADK_ADVISORY | true | Enables LLM escalation for low-confidence events |
ASA_MAX_INFLIGHT | 8 | Maximum concurrent requests before the server returns 503 |
ASA_RATE_LIMIT_MAX_REQUESTS | 12 | Maximum requests per IP per rate limit window |
Next steps
Environment variables
Full reference for all configuration options including rate limits, feature flags, and model selection.
Ingesting logs
Learn how to send structured and raw log events to the
/ingest-log endpoint.