Environment Variables¶
There are two environment modes:
- Full Docker / e2e — reads the repository-root
.env(created from.env.template). Compose maps values into each container and overrides local service URLs with Docker service names. - Local development — app processes read their own files:
apps/backend/.env,apps/frontend/.env,apps/crawlee/.env.infra/scripts/start-dev.shcreates or appends missing keys without overwriting existing values.
Never commit .env files
Environment files contain secrets. They are gitignored — keep it that way.
Required local secrets¶
Change all of these before any non-local use:
| Variable | Default | Description |
|---|---|---|
POSTGRES_PASSWORD |
placeholder | PostgreSQL password. |
INGEST_REDIS_PASSWORD |
placeholder | Redis password for the ingest queue. |
QDRANT_API_KEY |
placeholder | Qdrant API key — must match qdrant_config.yaml. |
AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY |
minioadmin |
MinIO (S3) credentials. |
KEYCLOAK_ADMIN_PASSWORD |
admin |
Keycloak admin password. |
Resource names¶
| Variable | Default | Description |
|---|---|---|
POSTGRES_USER / POSTGRES_DATABASE |
postgres |
Database user and name. |
S3_BUCKET_NAME |
uiuc-chat |
Object-storage bucket for uploaded files. |
QDRANT_COLLECTION_NAME |
illinois-chat-qwen |
Vector collection (4096-dim cosine vectors). |
AWS_REGION |
us-east-1 |
Region passed to the S3 client. |
Host ports¶
| Variable | Default |
|---|---|
FRONTEND_PORT |
3000 |
CRAWLEE_PORT |
3345 |
POSTGRES_PORT |
5432 |
KEYCLOAK_DB_PORT |
5433 |
PUBLIC_MINIO_API_PORT |
10000 |
PUBLIC_MINIO_DASHBOARD_PORT |
9001 |
MinIO endpoints for app processes (always the API port, never the console):
MINIO_ENDPOINT=http://localhost:10000
MINIO_PUBLIC_ENDPOINT=http://localhost:10000
MINIO_URL=http://localhost:10000
Authentication (Keycloak)¶
| Variable | Default | Description |
|---|---|---|
KEYCLOAK_ADMIN_USERNAME |
admin |
Keycloak admin user. |
NEXT_PUBLIC_KEYCLOAK_URL |
http://localhost:8080/ |
Keycloak base URL. |
NEXT_PUBLIC_KEYCLOAK_REALM |
illinois_chat_realm |
Realm (bootstrapped from infra/keycloak/realms/). |
NEXT_PUBLIC_KEYCLOAK_CLIENT_ID |
illinois_chat |
OIDC client ID. |
NEXT_PUBLIC_USE_ILLINOIS_CHAT_CONFIG |
True |
Use the Illinois Chat auth configuration. |
NEXT_PUBLIC_SIGNING_KEY |
(empty) | JWT signing key for the frontend. |
Model endpoints¶
Model, embedding, and API-key values are intentionally empty in the template so each deployment picks its own providers:
| Variable | Default | Description |
|---|---|---|
EMBEDDING_MODEL |
Qwen/Qwen3-Embedding-8B |
Embedding model (4096-dim vectors expected by the default Qdrant collection). |
EMBEDDING_API_BASE |
http://host.docker.internal:11434/v1 |
OpenAI-compatible endpoint serving the embedding model (default points at Ollama on the host). |
NCSA_HOSTED_API_KEY |
(empty) | Key for NCSA-hosted models. |
NCSA_HOSTED_VLM_BASE_URL |
(empty) | Base URL for the NCSA-hosted vision model. |
OLLAMA_SERVER_URL |
(empty) | Ollama server for local LLM serving. |
Optional observability & integrations¶
| Variable | Description |
|---|---|
POSTHOG_API_KEY, NEXT_PUBLIC_POSTHOG_KEY, NEXT_PUBLIC_POSTHOG_HOST |
PostHog product analytics. |
NOMIC_API_KEY |
Nomic Atlas semantic maps of documents and conversations. |
SENTRY_DSN |
Sentry error monitoring. |
See .env.template at the repository root for the canonical, up-to-date list.