Environment Variables Reference

Quick reference for configuring all three deployments: mi-casa (main app), ohlc-service, and ctrader-service.

Overview Table

Variablemi-casaohlc-servicectrader-serviceNotes
Server
NODE_ENV✅✅✅production in all deployed envs
PORT✅✅✅3870 / 3871 / 3872
LOG_LEVEL✅✅—debug | info | warn | error
PostgreSQL (mi-casa)
POSTGRES_SERVER✅——host:port
POSTGRES_DB✅——
POSTGRES_USER✅——
POSTGRES_PASSWORD✅——
TimescaleDB (ohlc-service)
TIMESCALE_SERVER—✅—host:port
TIMESCALE_DB—✅—
TIMESCALE_USER—✅—
TIMESCALE_PASSWORD—✅—
TimescaleDB (ctrader-service)
TIMESCALE_SERVER——✅Same server, separate DB
TIMESCALE_DB——✅
TIMESCALE_USER——✅
TIMESCALE_PASSWORD——✅
Auth
JWT_SECRET✅——Sign/verify JWTs
App
APP_URL✅——Public base URL of mi-casa
CORS_ORIGIN✅——Comma-separated allowed origins
ENABLE_SIGNUP✅——true to allow self-registration
BUN_PUBLIC_ENABLE_SIGNUP✅——Frontend flag
OHLC microservice
OHLC_SERVICE_URL✅——Internal URL of ohlc-service
OHLC_SERVICE_API_KEY✅——Shared secret (outbound from mi-casa)
OHLC_API_KEY—✅—Same secret (inbound to ohlc-service)
OHLC_ALERT_EMAIL_THRESHOLD✅✅—Signal score threshold for email alerts
REDETECT_CONCURRENCY—✅—Max concurrent redetect pairs, default 4
cTrader microservice
CTRADER_SERVICE_URL✅✅—Internal URL of ctrader-service
CTRADER_SERVICE_API_KEY✅✅—Shared secret (outbound)
CTRADER_API_KEY——✅Same shared secret (inbound)
CTRADER_CLIENT_ID✅—✅Spotware app client ID
CTRADER_CLIENT_SECRET✅—✅Spotware app client secret
CTRADER_REDIRECT_URI✅——OAuth2 callback URL
CTRADER_ENV——✅demo or live — selects WS endpoint
CTRADER_MD_ACCESS_TOKEN——✅Service account OAuth2 access token
CTRADER_MD_REFRESH_TOKEN——✅Service account refresh token (auto-refreshed)
CTRADER_MD_ACCOUNT_ID——✅Service account ctidTraderAccountId
SMTP (optional)
SMTP_HOST✅——
SMTP_PORT✅——
SMTP_USER✅——
SMTP_PASS✅——
SMTP_FROM✅——
SMTP_SECURE✅——
OpenTelemetry (optional)
OTEL_ENDPOINT✅✅—OTLP HTTP endpoint
OTEL_SERVICE_NAME✅✅—Service label in SigNoz
BUN_PUBLIC_OTEL_ENABLED✅——Frontend flag
BUN_PUBLIC_OTEL_SERVICE_NAME✅——
OpenPanel Analytics (optional)
BUN_PUBLIC_OPENPANEL_ENABLED✅——
BUN_PUBLIC_OPENPANEL_CLIENT_ID✅——
BUN_PUBLIC_OPENPANEL_API_URL✅——
Object Storage (optional)
STORAGE_ENDPOINT✅——
STORAGE_PUBLIC_URL✅——
STORAGE_ACCESS_KEY✅——
STORAGE_SECRET_KEY✅——
STORAGE_BUCKET✅——
STORAGE_USE_SSL✅——

CTRADER_ENV controls which cTrader WebSocket endpoint the shared market data feed connects to: demo → wss://demo.ctraderapi.com:5035/, live → wss://live.ctraderapi.com:5035/.


Quick Copy Lists

mi-casa

NODE_ENV=
PORT=
LOG_LEVEL=
POSTGRES_SERVER=
POSTGRES_DB=
POSTGRES_USER=
POSTGRES_PASSWORD=
JWT_SECRET=
APP_URL=
CORS_ORIGIN=
BUN_PUBLIC_ENABLE_SIGNUP=
OHLC_SERVICE_URL=
OHLC_SERVICE_API_KEY=
OHLC_ALERT_EMAIL_THRESHOLD=
CTRADER_SERVICE_URL=
CTRADER_SERVICE_API_KEY=
CTRADER_CLIENT_ID=
CTRADER_CLIENT_SECRET=
CTRADER_REDIRECT_URI=
SMTP_HOST=
SMTP_PORT=
SMTP_USER=
SMTP_PASS=
SMTP_FROM=
SMTP_SECURE=
OTEL_ENDPOINT=
OTEL_SERVICE_NAME=
BUN_PUBLIC_OTEL_ENABLED=
BUN_PUBLIC_OTEL_SERVICE_NAME=
BUN_PUBLIC_OPENPANEL_ENABLED=
BUN_PUBLIC_OPENPANEL_CLIENT_ID=
BUN_PUBLIC_OPENPANEL_API_URL=
STORAGE_ENDPOINT=
STORAGE_PUBLIC_URL=
STORAGE_ACCESS_KEY=
STORAGE_SECRET_KEY=
STORAGE_BUCKET=
STORAGE_USE_SSL=

ohlc-service

NODE_ENV=
PORT=
LOG_LEVEL=
TIMESCALE_SERVER=
TIMESCALE_DB=
TIMESCALE_USER=
TIMESCALE_PASSWORD=
OHLC_API_KEY=
OHLC_ALERT_EMAIL_THRESHOLD=
REDETECT_CONCURRENCY=
CTRADER_SERVICE_URL=
CTRADER_SERVICE_API_KEY=
OTEL_ENDPOINT=
OTEL_SERVICE_NAME=

ctrader-service

NODE_ENV=
PORT=
TIMESCALE_SERVER=
TIMESCALE_DB=
TIMESCALE_USER=
TIMESCALE_PASSWORD=
CTRADER_API_KEY=
CTRADER_CLIENT_ID=
CTRADER_CLIENT_SECRET=
CTRADER_ENV=
CTRADER_MD_ACCESS_TOKEN=
CTRADER_MD_REFRESH_TOKEN=
CTRADER_MD_ACCOUNT_ID=