55 lines
2.3 KiB
Bash
55 lines
2.3 KiB
Bash
# 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
|
|
|
|
# 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
|