Skip to main content

Environment Reference

Every variable below comes from .env.example, saas/config.py (Settings), or docker-compose.yml. No variable here is invented. Where .env.example ships a literal value it is quoted in the Default column; where a value is environment-specific (keys, passwords) it is marked Required or described.

Core

VariablePurposeDefault / Required
DATABASE_URLPostgreSQL connection string (asyncpg driver). Compose overrides this to point at the db service.Required (.env.example: postgresql+asyncpg://fishcloud:fishcloud@localhost:5432/fishcloud)
SECRET_KEYJWT signing key.Required (.env.example: change-me-in-production)
POSTGRES_PASSWORDPassword for the bundled Postgres container. Used by docker-compose.Required (.env.example: change-me)
DEMO_MODEtrue = read-only public demo (blocks register / create-job / launch-draft with 403).false

On-pod LLM (vLLM)

VariablePurposeDefault / Required
LLM_API_KEYAPI key for the on-pod fast LLM.Required (.env.example: not-needed)
LLM_BASE_URLBase URL for the on-pod LLM.http://localhost:8000/v1
LLM_MODEL_NAMEOn-pod model name.Qwen/Qwen3-14B

Neo4j graph database

VariablePurposeDefault / Required
NEO4J_URIBolt connection URI.bolt://localhost:7687
NEO4J_USERNeo4j username.neo4j
NEO4J_PASSWORDNeo4j password. Required Settings field (no default).Required (.env.example: change-me)

Report generation (Anthropic)

VariablePurposeDefault / Required
ANTHROPIC_API_KEYAPI key for off-pod report generation."" (.env.example: your_anthropic_key)
SMART_PROVIDERProvider for the report (smart) model. Settings only; not in .env.example.anthropic
SMART_MODELReport model name.claude-opus-4-6

GPU provider

VariablePurposeDefault / Required
RUNPOD_API_KEYRunPod provisioning key. Read via os.getenv, not Settings; needed by the worker.Required (.env.example: your_runpod_key)

MinIO object storage

VariablePurposeDefault / Required
MINIO_ENDPOINTMinIO host:port. Empty disables the storage layer."" (.env.example: localhost:9000)
MINIO_ACCESS_KEYMinIO access key."" (.env.example: your_minio_key)
MINIO_SECRET_KEYMinIO secret key."" (.env.example: your_minio_secret)
MINIO_BUCKETBucket for sim artifacts.simswarm
MINIO_SECUREUse TLS for MinIO connections.true
MINIO_PROXY_BASEOptional HTTPS proxy base to rewrite download URLs (e.g. https://simswarm.xyz/minio).""

Temporal

VariablePurposeDefault / Required
TEMPORAL_ADDRESSTemporal frontend address. Read via os.getenv.temporal:7233
TEMPORAL_NAMESPACETemporal namespace. Read via os.getenv.fishcloud
TEMPORAL_DB_PASSWORDPassword for the bundled Temporal Postgres container. Used by docker-compose.Required (.env.example: change-me)

Seed limits (Settings only)

VariablePurposeDefault / Required
MAX_SEED_CHARSMaximum seed-text length. Settings only; not in .env.example.50000
MAX_SIMULATION_ROUNDSMaximum simulation rounds. Settings only; not in .env.example.200

Worker image

VariablePurposeDefault / Required
WORKER_IMAGE_REPOGPU worker image repository.ghcr.io/sneg55/simswarm-worker
WORKER_IMAGE_TAGGPU worker image tag.latest

Optional

VariablePurposeDefault / Required
XAI_API_KEYxAI Grok key for seed enrichment (web + X search).""
OPENAI_API_KEYEmbeddings fallback.""
ALERT_WEBHOOK_URLWebhook for orphan-pod / error alerts.""
LOG_FORMATLog format: json or text.json
DOMAINCaddy hostname for TLS. Used by docker-compose (caddy service). Not a Settings field.localhost

DATABASE_URL and REDIS_URL are set inline by docker-compose.yml for the app, celery, and temporal-worker services, pointing at the db and redis containers. REDIS_URL is not a Settings field and has no .env.example entry.