# Copy this file to .env and fill in what you have. Everything has a safe # default / degrades gracefully if left blank. # Port nginx will listen on (http://localhost:HTTP_PORT) HTTP_PORT=8080 # --- Weather overlay (OpenWeatherMap tile layer) --- # Free key: https://home.openweathermap.org/users/sign_up # Without a key the weather overlay toggle stays disabled in the UI. OWM_API_KEY= # --- Conflict / "military movement" overlay --- # Backed by ACLED (Armed Conflict Location & Event Data), the closest thing # to an open, structured, public feed of reported military/conflict events. # Free academic/non-commercial access: https://acleddata.com/register/ # Without these the overlay stays empty (endpoint returns [] and the UI hides it). ACLED_API_KEY= ACLED_EMAIL= # --- Flights overlay (OpenSky Network) --- # Works anonymously out of the box (400 credits/day, hence the conservative # default poll interval below). Free registration raises that to 4000/day: # https://opensky-network.org/index.php?option=com_users&view=registration OPENSKY_USERNAME= OPENSKY_PASSWORD= FLIGHTS_POLL_SECONDS=300 # --- Polling intervals (minutes) --- RSS_POLL_MINUTES=10 MARKET_POLL_MINUTES=15 CONFLICT_POLL_MINUTES=60 POLYMARKET_POLL_MINUTES=15 # How long an article stays "live" on the globe before aging out of clusters ARTICLE_WINDOW_HOURS=72 # Minimum |% change| between two consecutive polls of an index/oil price # before it's even eligible to be a "spike" (see /api/markets/spikes) — # an absolute floor, applies regardless of the instrument's own volatility MARKET_SPIKE_THRESHOLD_PCT=1.5 # Above that floor, a move must also be at least this many times the # instrument's own recent typical move to count — i.e. "higher than the # historical norm for THIS instrument," not just an absolute percentage MARKET_SPIKE_VOLATILITY_MULTIPLIER=2.5 # Lookback window (days) for computing that "recent typical move" baseline MARKET_SPIKE_HISTORY_DAYS=7 # Minimum historical observations required before the volatility check # applies; below this (e.g. a freshly deployed instance) only the floor above applies MARKET_SPIKE_MIN_SAMPLES=8 # How many hours before a spike's previous poll to search for candidate # articles that might explain it MARKET_SPIKE_LOOKBACK_HOURS=6 # SQLite DB location inside the backend container (mapped to ./data on host) DATABASE_PATH=/data/newsatlas.db