Configuration Reference¶
The daemon and CLI are driven by a YAML config validated by Pydantic. The field tables below are generated from the models, so defaults and constraints are always accurate. Validate a file with:
dccd validate --config config.yml
Example¶
settings:
data_path: /home/me/data/crypto
timezone: UTC
ui_host: 127.0.0.1
ui_port: 8080
ui_auth_token: null # set a token to require Bearer auth on /api/*
ui_allow_origins: [] # opt-in CORS origins (default: same-origin only)
storage:
local_path: /home/me/data/crypto
remotes: [] # rclone remotes for sync
sync_interval: 0
alerts:
webhook_url: null
max_consecutive_errors: 3
jobs:
- exchange: binance
pairs: [BTC/USDT, ETH/USDT]
data_type: ohlc
operation: backfill
span: 60
trigger_kind: interval
every: 60
start: last
- exchange: binance
pairs: [BTC/USDT]
data_type: trades
operation: stream
trigger_kind: supervised
start: last
Schema¶
- pydantic model AppConfig[source]¶
Top-level config: settings, storage, alerts and the list of jobs.
- Fields:
- field settings [Optional]¶
- field storage [Optional]¶
- field alerts [Optional]¶
- field jobs [Optional]¶
- pydantic model SettingsConfig[source]¶
Global settings: data path, timezone, and web-UI bind/auth.
- Fields:
- field data_path = './data/crypto'¶
- field timezone = 'local'¶
- field ui_host = '127.0.0.1'¶
- field ui_port = 8080¶
- field ui_auth_token = None¶
- field ui_allow_origins [Optional]¶
- pydantic model StorageConfig[source]¶
Storage settings: local path, rclone remotes, and sync interval.
- field local_path = ''¶
- field remotes [Optional]¶
- field sync_interval = 3600¶
- pydantic model RemoteConfig[source]¶
One rclone remote target for sync.
- Fields:
- field provider = 'rclone'¶
- field remote [Required]¶
- pydantic model AlertConfig[source]¶
Health-alert settings: webhook URL and error threshold.
- field webhook_url = None¶
- field max_consecutive_errors = 3¶
- pydantic model JobConfig[source]¶
YAML job definition — more human-friendly than JobSpec.
Validation enforces: -
exchangemust be a known exchange name. -data_type='ohlc'requiresspanto be set. -pairsmust be non-empty and useBASE/QUOTEformat.- Fields:
- field exchange [Required]¶
- field pairs [Required]¶
- field data_type = 'ohlc'¶
- field operation = 'backfill'¶
- field span = None¶
- field trigger_kind = 'interval'¶
- field every = None¶
- field cron = None¶
- field start = 'last'¶
- field depth = None¶
- field snapshot_interval = None¶