Environment Variables Reference
Quick reference for configuring all three deployments: mi-casa (main app), ohlc-service, and ctrader-service.
Overview Table
| Variable | mi-casa | ohlc-service | ctrader-service | Notes |
|---|---|---|---|---|
| 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_ENVcontrols 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=