## Docker-internal service URLs (do not use 127.0.0.1/localhost here). ## Containers must reach each other via Compose service names. NATS_URL=nats://nats:4222 CLICKHOUSE_URL=http://clickhouse:8123 CLICKHOUSE_DATABASE=default REDIS_URL=redis://redis:6379 ISLANDFLOW_DATA_ROOT=/var/lib/islandflow API_PORT=4000 API_HOST=0.0.0.0 API_BIND_IP=127.0.0.1 API_HOST_PORT=4000 WEB_BIND_IP=127.0.0.1 WEB_HOST_PORT=3000 REST_DEFAULT_LIMIT=200 API_DELIVER_POLICY=new API_CONSUMER_RESET=false # Public web build target: # - Leave NEXT_PUBLIC_API_URL empty to use same-origin mode and proxy API # paths from flow.deltaisland.io to the API container yourself. # - Set NEXT_PUBLIC_API_URL=https://api.example.com only when an external # proxy or load balancer serves the API on a distinct origin. NEXT_PUBLIC_API_URL= NEXT_PUBLIC_NBBO_MAX_AGE_MS=1000 # Options ingest OPTIONS_INGEST_ADAPTER=synthetic ALPACA_API_KEY= ALPACA_REST_URL=https://data.alpaca.markets ALPACA_WS_BASE_URL=wss://stream.data.alpaca.markets/v1beta1 ALPACA_FEED=indicative ALPACA_UNDERLYINGS=SPY,NVDA,AAPL ALPACA_STRIKES_PER_SIDE=8 ALPACA_MAX_DTE_DAYS=30 ALPACA_MONEYNESS_PCT=0.06 ALPACA_MONEYNESS_FALLBACK_PCT=0.1 ALPACA_MAX_QUOTES=200 # Databento replay DATABENTO_API_KEY= DATABENTO_DATASET=OPRA.PILLAR DATABENTO_SCHEMA=trades DATABENTO_NBBO_SCHEMA=tbbo DATABENTO_START= DATABENTO_END= DATABENTO_SYMBOLS=ALL DATABENTO_STYPE_IN=raw_symbol DATABENTO_STYPE_OUT=raw_symbol DATABENTO_LIMIT=0 DATABENTO_PRICE_SCALE=1 DATABENTO_PYTHON_BIN=python3 # IBKR adapter (options) IBKR_HOST=host.docker.internal IBKR_PORT=7497 IBKR_CLIENT_ID=0 IBKR_SYMBOL=SPY IBKR_EXPIRY=20250117 IBKR_STRIKE=450 IBKR_RIGHT=C IBKR_EXCHANGE=SMART IBKR_CURRENCY=USD IBKR_PYTHON_BIN=python3 # Equities ingest EQUITIES_INGEST_ADAPTER=synthetic EMIT_INTERVAL_MS=1000 ALPACA_EQUITIES_FEED=iex # Testing mode TESTING_MODE=false TESTING_THROTTLE_MS=200 # Compute and inference COMPUTE_DELIVER_POLICY=new COMPUTE_CONSUMER_RESET=false NBBO_MAX_AGE_MS=1000 ROLLING_WINDOW_SIZE=50 ROLLING_TTL_SEC=86400 EQUITY_QUOTE_MAX_AGE_MS=1000 DARK_INFER_WINDOW_MS=60000 DARK_INFER_COOLDOWN_MS=30000 DARK_INFER_MIN_BLOCK_SIZE=2000 DARK_INFER_MIN_ACCUM_SIZE=3000 DARK_INFER_MIN_ACCUM_COUNT=4 DARK_INFER_MIN_PRINT_SIZE=200 DARK_INFER_MAX_EVIDENCE=20 DARK_INFER_MAX_SPREAD_PCT=0.005 CLASSIFIER_SWEEP_MIN_PREMIUM=40000 CLASSIFIER_SWEEP_MIN_COUNT=3 CLASSIFIER_SWEEP_MIN_PREMIUM_Z=2 CLASSIFIER_SPIKE_MIN_PREMIUM=20000 CLASSIFIER_SPIKE_MIN_SIZE=400 CLASSIFIER_SPIKE_MIN_PREMIUM_Z=2.5 CLASSIFIER_SPIKE_MIN_SIZE_Z=2 CLASSIFIER_Z_MIN_SAMPLES=12 CLASSIFIER_MIN_NBBO_COVERAGE=0.5 CLASSIFIER_MIN_AGGRESSOR_RATIO=0.55 CLASSIFIER_0DTE_MAX_ATM_PCT=0.01 CLASSIFIER_0DTE_MIN_PREMIUM=20000 CLASSIFIER_0DTE_MIN_SIZE=400 # Smart money refdata LOG_LEVEL=warn SMART_MONEY_EVENT_CALENDAR_PATH=data/event-calendar.json REFDATA_EVENT_CALENDAR_PATH= REFDATA_EVENT_CALENDAR_PROVIDER= ALPHA_VANTAGE_API_KEY= ALPHA_VANTAGE_EARNINGS_HORIZON=3month ALPHA_VANTAGE_EARNINGS_SYMBOL= REFDATA_EVENT_CALENDAR_REFRESH_MS=86400000 # Candles CANDLE_INTERVALS_MS=60000,300000 CANDLE_MAX_LATE_MS=0 CANDLE_CACHE_LIMIT=2000 CANDLE_DELIVER_POLICY=new CANDLE_CONSUMER_RESET=false # Replay profile REPLAY_STREAMS=options,nbbo,equities,equity-quotes REPLAY_START_TS=0 REPLAY_END_TS=0 REPLAY_SPEED=1 REPLAY_BATCH_SIZE=200 REPLAY_LOG_EVERY=1000 # API live retention LIVE_LIMIT_DEFAULT=1000 LIVE_LIMIT_OPTIONS=1000 LIVE_LIMIT_NBBO=1000 LIVE_LIMIT_EQUITIES=1000 LIVE_LIMIT_EQUITY_QUOTES=500 LIVE_LIMIT_EQUITY_JOINS=500 LIVE_LIMIT_FLOW=500 LIVE_LIMIT_SMART_MONEY=300 LIVE_LIMIT_CLASSIFIER_HITS=300 LIVE_LIMIT_ALERTS=300 LIVE_LIMIT_INFERRED_DARK=300 LIVE_SCOPED_CACHE_MAX_KEYS=32 LIVE_REDIS_FLUSH_INTERVAL_MS=250 LIVE_REDIS_FLUSH_MAX_ITEMS=100 # Compute and ingest cache retention ROLLING_CACHE_FLUSH_INTERVAL_MS=30000 ROLLING_CACHE_MAX_KEYS=20000 OPTION_CONTEXT_MAX_KEYS=20000 OPTION_CONTEXT_TTL_MS=900000 COMPUTE_NBBO_CACHE_MAX_KEYS=20000 COMPUTE_NBBO_CACHE_TTL_MS=900000 # JetStream retention STREAM_RAW_MAX_AGE_MS=3600000 STREAM_RAW_MAX_BYTES=536870912 STREAM_DERIVED_MAX_AGE_MS=43200000 STREAM_DERIVED_MAX_BYTES=268435456