added working config lib
This commit is contained in:
parent
f8576c0d93
commit
def9bce8dc
33 changed files with 2896 additions and 1485 deletions
233
.env.prod
Normal file
233
.env.prod
Normal file
|
|
@ -0,0 +1,233 @@
|
|||
# =======================================================================
|
||||
# Stock Bot Platform Production Environment Configuration
|
||||
# =======================================================================
|
||||
|
||||
# Core Application Settings
|
||||
NODE_ENV=production
|
||||
PORT=3001
|
||||
APP_NAME=stock-bot
|
||||
APP_VERSION=1.0.0
|
||||
|
||||
# =======================================================================
|
||||
# DATABASE CONFIGURATIONS
|
||||
# =======================================================================
|
||||
|
||||
# PostgreSQL - Operational Data (orders, positions, strategies)
|
||||
DB_HOST=${DB_HOST}
|
||||
DB_PORT=${DB_PORT:-5432}
|
||||
DB_NAME=${DB_NAME}
|
||||
DB_USER=${DB_USER}
|
||||
DB_PASSWORD=${DB_PASSWORD}
|
||||
DB_POOL_MIN=5
|
||||
DB_POOL_MAX=20
|
||||
DB_POOL_IDLE_TIMEOUT=60000
|
||||
DB_SSL=true
|
||||
DB_SSL_REJECT_UNAUTHORIZED=true
|
||||
DB_QUERY_TIMEOUT=30000
|
||||
DB_CONNECTION_TIMEOUT=10000
|
||||
|
||||
# QuestDB - Time-series Data (OHLCV, indicators, performance)
|
||||
QUESTDB_HOST=${QUESTDB_HOST}
|
||||
QUESTDB_HTTP_PORT=${QUESTDB_HTTP_PORT:-9000}
|
||||
QUESTDB_PG_PORT=${QUESTDB_PG_PORT:-8812}
|
||||
QUESTDB_INFLUX_PORT=${QUESTDB_INFLUX_PORT:-9009}
|
||||
QUESTDB_USER=${QUESTDB_USER}
|
||||
QUESTDB_PASSWORD=${QUESTDB_PASSWORD}
|
||||
QUESTDB_CONNECTION_TIMEOUT=10000
|
||||
QUESTDB_REQUEST_TIMEOUT=60000
|
||||
QUESTDB_RETRY_ATTEMPTS=5
|
||||
QUESTDB_TLS_ENABLED=true
|
||||
QUESTDB_DEFAULT_DATABASE=qdb
|
||||
QUESTDB_TELEMETRY_ENABLED=false
|
||||
|
||||
# MongoDB - Document Storage (sentiment, raw docs, unstructured data)
|
||||
MONGODB_HOST=${MONGODB_HOST}
|
||||
MONGODB_PORT=${MONGODB_PORT:-27017}
|
||||
MONGODB_DATABASE=${MONGODB_DATABASE}
|
||||
MONGODB_USERNAME=${MONGODB_USERNAME}
|
||||
MONGODB_PASSWORD=${MONGODB_PASSWORD}
|
||||
MONGODB_AUTH_SOURCE=admin
|
||||
MONGODB_URI=${MONGODB_URI}
|
||||
MONGODB_MAX_POOL_SIZE=50
|
||||
MONGODB_MIN_POOL_SIZE=5
|
||||
MONGODB_MAX_IDLE_TIME=60000
|
||||
MONGODB_CONNECT_TIMEOUT=30000
|
||||
MONGODB_SOCKET_TIMEOUT=60000
|
||||
MONGODB_SERVER_SELECTION_TIMEOUT=10000
|
||||
MONGODB_TLS=true
|
||||
MONGODB_RETRY_WRITES=true
|
||||
MONGODB_JOURNAL=true
|
||||
MONGODB_READ_PREFERENCE=primaryPreferred
|
||||
MONGODB_WRITE_CONCERN=majority
|
||||
|
||||
# Dragonfly - Redis Replacement (caching and events)
|
||||
DRAGONFLY_HOST=${DRAGONFLY_HOST}
|
||||
DRAGONFLY_PORT=${DRAGONFLY_PORT:-6379}
|
||||
DRAGONFLY_PASSWORD=${DRAGONFLY_PASSWORD}
|
||||
DRAGONFLY_USERNAME=${DRAGONFLY_USERNAME}
|
||||
DRAGONFLY_DATABASE=0
|
||||
DRAGONFLY_MAX_RETRIES=5
|
||||
DRAGONFLY_RETRY_DELAY=100
|
||||
DRAGONFLY_CONNECT_TIMEOUT=30000
|
||||
DRAGONFLY_COMMAND_TIMEOUT=10000
|
||||
DRAGONFLY_POOL_SIZE=50
|
||||
DRAGONFLY_POOL_MIN=5
|
||||
DRAGONFLY_POOL_MAX=100
|
||||
DRAGONFLY_TLS=true
|
||||
DRAGONFLY_ENABLE_KEEPALIVE=true
|
||||
DRAGONFLY_KEEPALIVE_INTERVAL=30
|
||||
DRAGONFLY_CLUSTER_MODE=false
|
||||
DRAGONFLY_CLUSTER_NODES=
|
||||
DRAGONFLY_MAX_MEMORY=8gb
|
||||
DRAGONFLY_CACHE_MODE=true
|
||||
|
||||
# =======================================================================
|
||||
# MONITORING & LOGGING CONFIGURATIONS
|
||||
# =======================================================================
|
||||
|
||||
# Logging Configuration (Production - Less verbose)
|
||||
LOG_LEVEL=info
|
||||
LOG_FORMAT=json
|
||||
LOG_CONSOLE=false
|
||||
LOG_FILE=true
|
||||
LOG_FILE_PATH=/var/log/stock-bot
|
||||
LOG_FILE_MAX_SIZE=100m
|
||||
LOG_FILE_MAX_FILES=30
|
||||
LOG_FILE_DATE_PATTERN=YYYY-MM-DD
|
||||
LOG_ERROR_FILE=true
|
||||
LOG_ERROR_STACK=false
|
||||
LOG_PERFORMANCE=true
|
||||
LOG_SQL_QUERIES=false
|
||||
LOG_HTTP_REQUESTS=false
|
||||
LOG_STRUCTURED=true
|
||||
LOG_TIMESTAMP=true
|
||||
LOG_CALLER_INFO=false
|
||||
LOG_SILENT_MODULES=
|
||||
LOG_VERBOSE_MODULES=
|
||||
LOG_SERVICE_NAME=stock-bot
|
||||
LOG_SERVICE_VERSION=1.0.0
|
||||
LOG_ENVIRONMENT=production
|
||||
|
||||
# Loki - Log Aggregation
|
||||
LOKI_HOST=${LOKI_HOST}
|
||||
LOKI_PORT=${LOKI_PORT:-3100}
|
||||
LOKI_URL=${LOKI_URL}
|
||||
LOKI_USERNAME=${LOKI_USERNAME}
|
||||
LOKI_PASSWORD=${LOKI_PASSWORD}
|
||||
LOKI_TENANT_ID=${LOKI_TENANT_ID}
|
||||
LOKI_PUSH_TIMEOUT=30000
|
||||
LOKI_BATCH_SIZE=2048
|
||||
LOKI_BATCH_WAIT=5000
|
||||
LOKI_RETENTION_PERIOD=90d
|
||||
LOKI_MAX_CHUNK_AGE=2h
|
||||
LOKI_TLS_ENABLED=true
|
||||
LOKI_TLS_INSECURE=false
|
||||
LOKI_DEFAULT_LABELS=
|
||||
LOKI_SERVICE_LABEL=stock-bot
|
||||
LOKI_ENVIRONMENT_LABEL=production
|
||||
|
||||
# Prometheus - Metrics Collection
|
||||
PROMETHEUS_HOST=${PROMETHEUS_HOST}
|
||||
PROMETHEUS_PORT=${PROMETHEUS_PORT:-9090}
|
||||
PROMETHEUS_URL=${PROMETHEUS_URL}
|
||||
PROMETHEUS_USERNAME=${PROMETHEUS_USERNAME}
|
||||
PROMETHEUS_PASSWORD=${PROMETHEUS_PASSWORD}
|
||||
PROMETHEUS_SCRAPE_INTERVAL=30s
|
||||
PROMETHEUS_EVALUATION_INTERVAL=30s
|
||||
PROMETHEUS_RETENTION_TIME=90d
|
||||
PROMETHEUS_TLS_ENABLED=true
|
||||
PROMETHEUS_TLS_INSECURE=false
|
||||
|
||||
# Grafana - Visualization
|
||||
GRAFANA_HOST=${GRAFANA_HOST}
|
||||
GRAFANA_PORT=${GRAFANA_PORT:-3000}
|
||||
GRAFANA_URL=${GRAFANA_URL}
|
||||
GRAFANA_ADMIN_USER=${GRAFANA_ADMIN_USER}
|
||||
GRAFANA_ADMIN_PASSWORD=${GRAFANA_ADMIN_PASSWORD}
|
||||
GRAFANA_ALLOW_SIGN_UP=false
|
||||
GRAFANA_SECRET_KEY=${GRAFANA_SECRET_KEY}
|
||||
GRAFANA_DATABASE_TYPE=postgres
|
||||
GRAFANA_DATABASE_URL=${GRAFANA_DATABASE_URL}
|
||||
GRAFANA_DISABLE_GRAVATAR=true
|
||||
GRAFANA_ENABLE_GZIP=true
|
||||
|
||||
# =======================================================================
|
||||
# DATA PROVIDER CONFIGURATIONS
|
||||
# =======================================================================
|
||||
|
||||
# Default Data Provider
|
||||
DEFAULT_DATA_PROVIDER=alpaca
|
||||
|
||||
# Alpaca Markets (Production)
|
||||
ALPACA_ENABLED=true
|
||||
ALPACA_API_KEY=${ALPACA_API_KEY}
|
||||
ALPACA_SECRET_KEY=${ALPACA_SECRET_KEY}
|
||||
ALPACA_BASE_URL=https://api.alpaca.markets
|
||||
ALPACA_DATA_URL=https://data.alpaca.markets
|
||||
ALPACA_PAPER_TRADING=false
|
||||
|
||||
# Polygon.io
|
||||
POLYGON_ENABLED=${POLYGON_ENABLED:-false}
|
||||
POLYGON_API_KEY=${POLYGON_API_KEY}
|
||||
POLYGON_BASE_URL=https://api.polygon.io
|
||||
|
||||
# Yahoo Finance
|
||||
YAHOO_ENABLED=${YAHOO_ENABLED:-false}
|
||||
YAHOO_BASE_URL=https://query1.finance.yahoo.com
|
||||
|
||||
# IEX Cloud
|
||||
IEX_ENABLED=${IEX_ENABLED:-false}
|
||||
IEX_API_KEY=${IEX_API_KEY}
|
||||
IEX_BASE_URL=https://cloud.iexapis.com
|
||||
|
||||
# Data Provider Settings (Production)
|
||||
DATA_PROVIDER_TIMEOUT=60000
|
||||
DATA_PROVIDER_RETRIES=5
|
||||
DATA_PROVIDER_RETRY_DELAY=2000
|
||||
DATA_CACHE_ENABLED=true
|
||||
DATA_CACHE_TTL=60
|
||||
DATA_CACHE_MAX_SIZE=10000
|
||||
|
||||
# =======================================================================
|
||||
# TRADING & RISK MANAGEMENT (Production)
|
||||
# =======================================================================
|
||||
|
||||
# Trading Configuration
|
||||
PAPER_TRADING=false
|
||||
MAX_POSITION_SIZE=${MAX_POSITION_SIZE:-0.05}
|
||||
MAX_DAILY_LOSS=${MAX_DAILY_LOSS:-10000}
|
||||
|
||||
# Risk Management (Stricter for production)
|
||||
RISK_MAX_POSITION_SIZE=${RISK_MAX_POSITION_SIZE:-0.10}
|
||||
RISK_MAX_LEVERAGE=${RISK_MAX_LEVERAGE:-1.5}
|
||||
RISK_DEFAULT_STOP_LOSS=${RISK_DEFAULT_STOP_LOSS:-0.015}
|
||||
RISK_DEFAULT_TAKE_PROFIT=${RISK_DEFAULT_TAKE_PROFIT:-0.045}
|
||||
RISK_MAX_DRAWDOWN=${RISK_MAX_DRAWDOWN:-0.05}
|
||||
RISK_MAX_CONSECUTIVE_LOSSES=${RISK_MAX_CONSECUTIVE_LOSSES:-3}
|
||||
RISK_POSITION_SIZING_METHOD=volatility_adjusted
|
||||
RISK_CIRCUIT_BREAKER_ENABLED=true
|
||||
RISK_CIRCUIT_BREAKER_THRESHOLD=0.02
|
||||
RISK_CIRCUIT_BREAKER_COOLDOWN=7200000
|
||||
RISK_ALLOW_WEEKEND_TRADING=false
|
||||
RISK_MARKET_HOURS_ONLY=true
|
||||
|
||||
# =======================================================================
|
||||
# FEATURE FLAGS (Production)
|
||||
# =======================================================================
|
||||
ENABLE_ML_SIGNALS=${ENABLE_ML_SIGNALS:-false}
|
||||
ENABLE_SENTIMENT_ANALYSIS=${ENABLE_SENTIMENT_ANALYSIS:-false}
|
||||
ENABLE_SOCIAL_SIGNALS=${ENABLE_SOCIAL_SIGNALS:-false}
|
||||
ENABLE_OPTIONS_TRADING=${ENABLE_OPTIONS_TRADING:-false}
|
||||
ENABLE_CRYPTO_TRADING=${ENABLE_CRYPTO_TRADING:-false}
|
||||
ENABLE_BACKTESTING=true
|
||||
ENABLE_PAPER_TRADING=false
|
||||
ENABLE_LIVE_TRADING=true
|
||||
|
||||
# =======================================================================
|
||||
# PRODUCTION SETTINGS
|
||||
# =======================================================================
|
||||
DEBUG_MODE=false
|
||||
VERBOSE_LOGGING=false
|
||||
MOCK_DATA_PROVIDERS=false
|
||||
ENABLE_API_RATE_LIMITING=true
|
||||
ENABLE_REQUEST_LOGGING=false
|
||||
Loading…
Add table
Add a link
Reference in a new issue