Skip to main content
World Monitor uses environment variables for configuration. Copy .env.example to .env.local and configure only the features you need.
cp .env.example .env.local
All API keys are optional. The dashboard works without them, but corresponding features will be disabled.

AI Summarization

AI-powered news briefs use a 4-tier fallback chain: Ollama (local) → Groq → OpenRouter → Browser (Transformers.js).
GROQ_API_KEY
string
Groq API key for fast LLM inference (Llama 3.1 8B). Primary cloud provider.Free tier: 14,400 requests/day
Get yours at: https://console.groq.com/
OPENROUTER_API_KEY
string
OpenRouter API key for multi-model fallback.Free tier: 50 requests/day
Get yours at: https://openrouter.ai/
OLLAMA_API_URL
string
default:"http://localhost:11434"
Ollama or LM Studio server URL for local AI inference. No data leaves your machine.Example: http://localhost:11434 (Ollama default)
Example: http://localhost:1234 (LM Studio default)
OLLAMA_MODEL
string
default:"llama3.1:8b"
Model name for local Ollama inference. Auto-discovered in desktop settings.Default: llama3.1:8b
Popular alternatives: mistral, qwen2.5:7b, gemma2:9b

Cross-User Cache (Redis)

Deduplicates AI calls and caches risk scores across all visitors.
UPSTASH_REDIS_REST_URL
string
Upstash Redis REST URL for global cache.Get yours at: https://upstash.com/
Example: https://us1-pretty-hamster-12345.upstash.io
UPSTASH_REDIS_REST_TOKEN
string
Upstash Redis authentication token.

Market Data

FINNHUB_API_KEY
string
Finnhub API key for real-time stock quotes and market data.Free tier: 60 requests/minute
Get yours at: https://finnhub.io/

Energy Data

EIA_API_KEY
string
U.S. Energy Information Administration API key for oil prices, production, and inventory.Get yours at: https://www.eia.gov/opendata/

Economic Data

FRED_API_KEY
string
Federal Reserve Economic Data (FRED) API key for macro indicators and economic metrics.Get yours at: https://fred.stlouisfed.org/docs/api/api_key.html

Aircraft Tracking

WINGBITS_API_KEY
string
Wingbits API key for aircraft enrichment (owner, operator, type metadata).Get yours at: https://wingbits.com/
OPENSKY_CLIENT_ID
string
OpenSky Network OAuth2 client ID for higher rate limits from cloud IPs.Get yours at: https://opensky-network.org/
OPENSKY_CLIENT_SECRET
string
OpenSky Network OAuth2 client secret.

Conflict & Protest Data

ACLED_ACCESS_TOKEN
string
Armed Conflict Location & Event Data (ACLED) API token for conflict and protest events.Free tier: Available for researchers
Get yours at: https://acleddata.com/

Internet Outages

CLOUDFLARE_API_TOKEN
string
Cloudflare Radar API token for internet outage detection.Requires: Free Cloudflare account with Radar access
Get yours at: https://dash.cloudflare.com/profile/api-tokens

Satellite Fire Detection

NASA_FIRMS_API_KEY
string
NASA Fire Information for Resource Management System (FIRMS) API key.Get yours at: https://firms.modaps.eosdis.nasa.gov/

Railway Relay Server

The relay server handles AIS vessel tracking, OpenSky aircraft data, RSS proxy, and Telegram OSINT polling.
AISSTREAM_API_KEY
string
AISStream API key for live vessel positions via WebSocket.Get yours at: https://aisstream.io/
WS_RELAY_URL
string
Server-side relay URL (https://) used by Vercel edge functions.Example: https://relay.yourapp.com
VITE_WS_RELAY_URL
string
Client-side relay URL (wss://) for local/dev fallback only.Example: wss://relay.yourapp.com
RELAY_SHARED_SECRET
string
Shared secret between Vercel and Railway relay. Must be identical on both platforms.Generate with: openssl rand -hex 32
RELAY_AUTH_HEADER
string
default:"x-relay-key"
Header name used to send the relay secret.
ALLOW_UNAUTHENTICATED_RELAY
boolean
default:false
Emergency production override to allow unauthenticated relay traffic.
Leave unset/false in production.
RELAY_METRICS_WINDOW_SECONDS
number
default:60
Rolling window size (seconds) used by relay /metrics endpoint.

Telegram OSINT

Runs on Railway relay for MTProto stateful polling.
TELEGRAM_API_ID
string
Telegram MTProto API ID.Get yours at: https://my.telegram.org/apps
TELEGRAM_API_HASH
string
Telegram MTProto API hash.
TELEGRAM_SESSION
string
GramJS StringSession generated locally.Generate with: scripts/telegram/session-auth.mjs
TELEGRAM_CHANNEL_SET
string
default:"full"
Which curated channel list to ingest.Options: full, tech, finance

Threat Intelligence

URLHAUS_AUTH_KEY
string
URLhaus API key for malicious URL IOCs.Get yours at: https://auth.abuse.ch/
OTX_API_KEY
string
AlienVault Open Threat Exchange (OTX) API key for cyber threat enrichment.Get yours at: https://otx.alienvault.com/
ABUSEIPDB_API_KEY
string
AbuseIPDB API key for IP reputation enrichment.Get yours at: https://www.abuseipdb.com/

Trade Data

WTO_API_KEY
string
World Trade Organization API key for trade restrictions, tariff trends, and barriers.Get yours at: https://apiportal.wto.org/

Aviation Data

AVIATIONSTACK_API
string
AviationStack API key for international airport delay data.Get yours at: https://aviationstack.com/signup/free
ICAO_API_KEY
string
ICAO NOTAM API key for airport closure detection (Middle East focus).Get yours at: https://dataservices.icao.int/

Site Configuration

VITE_VARIANT
string
default:"full"
Dashboard variant.Options: full (worldmonitor.app), tech (tech.worldmonitor.app), finance, happy
VITE_WS_API_URL
string
API base URL for web redirect. When set, browser fetch calls to /api/* redirect to this URL.Leave empty for same-domain API (local installs)
Production: https://api.worldmonitor.app
VITE_MAP_INTERACTION_MODE
string
default:"3d"
Map interaction mode.Options:
  • 3d — enables pitch/rotation interactions (default)
  • flat — keeps pitch/rotation disabled (2D interaction)
VITE_SENTRY_DSN
string
Client-side Sentry DSN for error reporting.Leave empty to disable error reporting.
VITE_POSTHOG_KEY
string
PostHog product analytics key.Leave empty to disable analytics.
VITE_POSTHOG_HOST
string
PostHog instance host URL.

Desktop Cloud Fallback

WORLDMONITOR_VALID_KEYS
string
Comma-separated list of valid API keys for desktop cloud fallback.Generate with: openssl rand -hex 24 | sed 's/^/wm_/'

Registration Database

CONVEX_URL
string
Convex deployment URL for email registration storage.Set up at: https://dashboard.convex.dev/

Public Data Sources

These services require no API keys and work out of the box:
  • UCDP (Uppsala Conflict Data Program) — conflict data
  • UNHCR (UN Refugee Agency) — refugee statistics (CC BY 4.0)
  • Open-Meteo — weather data (Copernicus ERA5)
  • WorldPop — population density
Rate Limits: Public APIs may have undocumented rate limits. The dashboard includes automatic circuit breakers and retry logic.

Build docs developers (and LLMs) love