Installation
This page covers everything the quickstart
glossed over. The single source of truth for configuration is
.env.example
in the repository — every variable is documented inline there.
What docker compose up -d starts
Section titled “What docker compose up -d starts”| Service | Purpose |
|---|---|
arta-api |
The ARTA engine — FastAPI backend, agents, dispatch pipeline |
arta-frontend |
The dashboard — Next.js 14 |
postgres |
Primary database |
neo4j |
Traceability graph (requirement → test → result) |
redis |
Queues and pub/sub between pipeline stages |
chromadb |
Vector store for retrieval during generation |
zap |
OWASP ZAP daemon for security scans |
Default host ports: UI on 38088, API on 38087 (the API container’s
internal port stays 8000; override the host mapping with ARTA_API_HOST_PORT
if 38087 clashes on your machine).
Configure the LLM provider
Section titled “Configure the LLM provider”ARTA defaults to a local model — no key required:
ARTA_LLM_PROVIDER=ollamaARTA_LLM_MODEL=qwen2.5:32bOLLAMA_BASE_URL=http://localhost:11434Supported providers are ollama, anthropic, google_gemini, and openai —
set the matching API key variable (for example ANTHROPIC_API_KEY) when using
a cloud provider. Providers can also be configured per project in the UI.
ARTA explicitly refuses to silently fall back to a cloud endpoint when a provider is misconfigured — a misconfiguration is an error, not a quiet data-residency violation.
Secrets and first login
Section titled “Secrets and first login”DATABASE_URLis the primary secret (it contains the Postgres password); keep it in sync withPOSTGRES_PASSWORDwhen you rotate.ARTA_API_KEYprotects admin endpoints — change it from the placeholder.- Bootstrap the first admin account with
ARTA_BOOTSTRAP_ADMIN_EMAIL+ARTA_BOOTSTRAP_ADMIN_PASSWORD(created only when the users table is empty; unset after first login), or useARTA_DEMO_MODE=1for a no-database demo (admin@arta.dev/demo1234— never in production). - Never commit
.envto source control.
Telemetry
Section titled “Telemetry”ARTA sends an anonymous, bucketed usage ping by default. Every field is documented in docs/TELEMETRY.md, free-form strings are structurally impossible, and:
ARTA_TELEMETRY=0produces zero network calls — there is a unit test that proves it. This makes air-gapped deployment a supported configuration, not a workaround.
Production self-hosting
Section titled “Production self-hosting”For sizing, deployment profiles, and security hardening, read the
self-hosting infrastructure spec
and the runbook.
The repo also ships docker-compose.prod.yml as a production-oriented overlay.