Skip to content
GitHubRSS

Configuration Overview

BigBrotr uses YAML configuration files with Pydantic validation. Every service has two configuration sources: a core Brotr config (shared) and a service-specific config.

config/
├── brotr.yaml # Core: pool, batch, timeouts
└── services/
├── seeder.yaml
├── finder.yaml
├── validator.yaml
├── monitor.yaml
├── refresher.yaml
└── synchronizer.yaml
  1. CLI flags override file paths: --brotr-config, --config
  2. Default paths: config/brotr.yaml, config/services/<service>.yaml
  3. YAML files are parsed and validated through Pydantic models
  4. Environment variables can override specific values
Terminal window
python -m bigbrotr <service> [options]
FlagDefaultDescription
--config PATHconfig/services/<service>.yamlService-specific config
--brotr-config PATHconfig/brotr.yamlCore database/pool config
--log-level LEVELINFODEBUG, INFO, WARNING, ERROR
--oncefalseRun a single cycle then exit

Environment variables in YAML files are interpolated at load time using ${VAR_NAME} syntax:

pool:
dsn: postgresql://${POSTGRES_USER}:${POSTGRES_PASSWORD}@pgbouncer:5432/${POSTGRES_DB}