The platform is configured through environment variables (see .env.example, used by the compose stack). This page is the complete reference. Values shown are defaults.
| Variable |
Default |
Purpose |
INTERNAL_API_TOKEN |
— |
Shared bearer token between Rails and Python; required (fails closed when unset) |
PYTHON_API_URL |
http://python:8000/api/v1 |
Base URL for Rails→Python calls |
RAILS_API_URL |
http://rails:80 |
Base URL for Python→Rails calls |
RAILS_REQUEST_TIMEOUT |
10 |
Rails→Python timeout (seconds) |
SOCIAL_ENRICH_TIMEOUT |
120 |
Social enrichment timeout (seconds) |
REDIS_URL |
redis://redis:6379/1 |
Redis connection for pub/sub + ActionCable |
| Variable |
Default |
Purpose |
RAILS_ENV |
development |
Environment |
RAILS_MASTER_KEY |
— |
Credentials key |
RAILS_PORT |
3000 |
Host port for the Rails container |
DATABASE_URL |
— |
Database connection |
TEST_DATABASE_URL |
— |
Test database connection |
RAILS_MAX_THREADS |
— |
Puma threads |
RAILS_LOG_LEVEL |
— |
Log verbosity |
SOLID_QUEUE_IN_PUMA |
— |
Run Solid Queue in Puma |
JOB_CONCURRENCY |
— |
Job concurrency |
WEB_CONCURRENCY |
— |
Web workers |
PORT |
— |
Server port |
PIDFILE |
— |
Pid file |
CI |
— |
CI flag |
BUNDLE_GEMFILE |
— |
Gemfile override |
| Variable |
Default |
Purpose |
POSTGRES_USER |
brand_protect |
Database user |
POSTGRES_PASSWORD |
— |
Database password |
POSTGRES_DB |
brand_protect_development |
Main database |
| Variable |
Default |
Purpose |
APP_ENV |
development |
App environment |
LOG_LEVEL |
INFO |
Log level |
LOG_FORMAT |
json |
json or text logging |
SERVICE_NAME |
— |
Service name in logs |
AVATARS_DIR |
— |
Social avatar storage |
SCREENSHOTS_DIR |
— |
Screenshot storage |
EMBEDDING_MODEL |
sentence-transformers/all-MiniLM-L6-v2 |
Identity-matching embeddings |
| Variable |
Purpose |
GLITCHTIP_DB |
Separate GlitchTip database |
GLITCHTIP_SECRET_KEY |
GlitchTip secret |
SENTRY_DSN_PYTHON |
Python error tracking DSN |
SENTRY_DSN_RUBY |
Rails error tracking DSN |
| Variable |
Purpose |
OPENAI_API_KEY |
OpenAI key |
ANTHROPIC_API_KEY |
Anthropic key |
GEMINI_API_KEY |
Google Gemini key |
These only fill gaps when the admin ai_provider setting is unconfigured:
| Variable |
Default |
Purpose |
AI_ENABLED |
— |
Master switch (env fallback) |
AI_PROVIDER |
openai |
Provider type |
AI_API_KEY |
— |
Overrides per-provider keys |
AI_BASE_URL |
— |
OpenAI-compatible base URL |
AI_MODEL |
gpt-4o-mini |
Default model |
AI_MAX_TOKENS |
1024 |
Output cap |
AI_TEMPERATURE |
0.7 |
Sampling temperature |
| Variable |
Default |
Purpose |
AI_AUDIT_ENABLED |
1 |
Master switch for the AI audit stage |
| Variable |
Default |
Purpose |
KEYWORD_EXPANSION_TOP_K |
10 |
Number of derived keywords |
AI_KEYWORD_EXPANSION_ENABLED |
— |
Enable AI keyword inference |
AI_KEYWORD_CONTEXT_CHARS |
8000 |
Context window for inference |
KEYWORD_EXPAND_MAX_RETRIES |
2 |
Retries on failure |
KEYWORD_EXPAND_RETRY_BASE_DELAY |
60 |
Retry backoff (seconds) |
| Variable |
Purpose |
SAFE_BROWSING_API_KEY |
Google Safe Browsing |
URLHAUS_API_KEY |
URLhaus |
ABUSEIPDB_API_KEY |
AbuseIPDB |
VIRUSTOTAL_API_KEY |
VirusTotal |
SHODAN_API_KEY |
Shodan |
SECURITYTRAILS_API_KEY |
SecurityTrails |
CENSYS_API_KEY |
Censys |
HACKERTARGET_API_KEY |
HackerTarget |
| Variable |
Default |
Purpose |
SOCIAL_SCAN_ENABLED |
true |
Enable social discovery |
MAIGRET_MAX_HANDLES |
100 |
Max handle probes |
MAIGRET_MAX_CONNECTIONS |
— |
Connection pool |
MAIGRET_WORKERS |
— |
Worker threads |
MAIGRET_TIMEOUT |
— |
Per-probe timeout |
MAIGRET_RETRIES |
— |
Probe retries |
MAIGRET_PROXY |
— |
Proxy for probes |
MAIGRET_TOR_PROXY |
— |
Tor proxy for probes |
| Variable |
Purpose |
DORK_BACKEND |
serpapi or google_cse |
SERPAPI_KEY |
SerpAPI key |
GOOGLE_CSE_KEY |
Google Programmable Search key |
GOOGLE_CSE_CX |
Google CSE context |
DORK_DELAY / DORK_BETWEEN_QUERIES |
Query pacing |
DORK_DISABLE_FREE |
Disable free (non-key) backends |
DORK_HTTP_TIMEOUT |
Request timeout |
DORK_MAX_RESULTS |
Result cap |
| Variable |
Default |
Purpose |
MIN_LABELED_SAMPLES |
10 |
Min labels before adaptive learning |
WEIGHTS_DECAY_DAYS |
90 |
Sample recency window |
JARM_ENABLED |
1 |
JARM TLS fingerprinting |
BULLETPROOF_ASNS |
— |
Comma-separated ASN blocklist |
SANCTIONED_COUNTRIES |
— |
Comma-separated country names |