Skip to Content
Lookup TraderConfiguration

Configuration

Server settings load from server/.env via pydantic-settings with the LOOKUP_ prefix (see server/app/config.py). Copy server/.env.example and never commit the private file.

Capital credentials are trading-capable. Keep LOOKUP_CAPITAL_ENVIRONMENT=demo and use Demo keys only. The app has no order path; meta shadow still asserts orders_enabled is False.

Dev ports & compare thresholds

Documented in the package README for local development:

VariableDefaultPurpose
LOOKUP_SERVER_PORT(dev script)API port override for ./scripts/dev.sh
LOOKUP_CLIENT_PORT(dev script)Vite client port override
LOOKUP_MIN_SAMPLES30Compare sample floor; lower during dev so /compare returns stats sooner
VITE_COMPARE_MIN_SAMPLES3Manual Compare threshold in the client
LOOKUP_BASE_RATE_MIN_SAMPLES200Automatic base-rate recommendations; cannot be lowered by a client request

Capital.com (Demo)

From server/.env.example:

VariableExample / defaultPurpose
LOOKUP_CAPITAL_ENVIRONMENTdemoMust stay Demo for this stack
LOOKUP_CAPITAL_API_KEYSecret
LOOKUP_CAPITAL_IDENTIFIERSecret
LOOKUP_CAPITAL_API_PASSWORDSecret
LOOKUP_CAPITAL_EPICS'{"XAUUSD":"GOLD"}'Canonical symbol → Capital EPIC map
LOOKUP_CAPITAL_PRICE_SIDEbidBid-only candles
LOOKUP_CAPITAL_OVERLAP_BARS3Overlap when syncing
LOOKUP_CAPITAL_SETTLEMENT_SECONDS90Closed-bar settlement wait
LOOKUP_CAPITAL_POLL_SECONDS60Shadow poll interval

After --search-market Gold, set the epic map (or epic) to the exact returned XAU/USD epic.

Meta-event notifications

Best-effort alerts; recipients and provider credentials belong to the standalone notification service.

VariableDefaultPurpose
LOOKUP_META_EVENT_NOTIFICATIONS_ENABLEDfalseMaster switch
LOOKUP_NOTIFICATION_SERVICE_URLhttp://127.0.0.1:3010Notification service base URL
LOOKUP_NOTIFICATION_API_KEYSecret
LOOKUP_NOTIFICATION_CHANNELSTELEGRAM,EMAILChannel list
LOOKUP_NOTIFICATION_TIMEOUT_SECONDS5Request timeout
LOOKUP_NOTIFICATION_RETRY_MINUTES10Retry spacing
LOOKUP_NOTIFICATION_MAX_ATTEMPTS5Exhausted retries need manual attention
LOOKUP_NOTIFICATION_MAX_AGE_HOURS24Drop stale undelivered alerts
LOOKUP_META_SHADOW_STALE_SECONDS300Watchdog stale threshold

Paths & versions (settings defaults)

These are overridable via the same LOOKUP_ env mapping when needed:

SettingDefault role
data_dir / duckdb_pathdata/ and data/engine.duckdb
shadow_db_pathdata/shadow.sqlite3
meta_shadow_db_pathdata/meta_shadow.sqlite3
outcome_artifact_versionSelected outcome artifact under data/models/outcome/
bar_feature_versionFeature-store version equality filter (bump → full rebuild)

CORS defaults allow http://localhost:5173 and http://127.0.0.1:5173.

Last updated on