Skip to content
GitHubRSS

Installation

This guide covers installing BigBrotr from source using uv, the fast Python package manager. For production deployments, see the Quick Start guide with Docker Compose.

  • Python 3.11 or later
  • PostgreSQL 16 or later (for integration tests)
  • uv package manager
  • Git
Terminal window
# Clone the repository
git clone https://github.com/BigBrotr/bigbrotr.git
cd bigbrotr
# Install all dependencies including dev and docs groups
uv sync --group dev --group docs

This creates a virtual environment in .venv/ and installs all dependencies.

Terminal window
# Run the test suite (unit tests only)
pytest tests/ --ignore=tests/integration/ -v
# Run linting and type checking
ruff check src/ tests/
mypy src/bigbrotr
# Or run everything at once
make ci
CommandDescription
make lintRun ruff linter
make formatRun ruff formatter
make format-checkCheck formatting without changes
make typecheckRun mypy strict type checking
make testRun all tests
make test-fastRun unit tests only (skip integration)
make coverageRun tests with coverage report
make auditSecurity audit of dependencies
make ciRun lint + typecheck + test (full CI)

BigBrotr uses a strict branching model:

  1. main is release-ready. Never push directly.
  2. develop is the integration branch.
  3. All work happens on feature branches created from develop.
Terminal window
# Create a feature branch
git checkout develop
git pull origin develop
git checkout -b feat/my-feature
# Make changes, then verify
make ci
# Commit with conventional commit format
git commit -m "feat: add my feature"

Branch naming follows the commit type: feat/, fix/, refactor/, docs/, test/, chore/.

To run services outside Docker, you need a PostgreSQL instance with the BigBrotr schema:

Terminal window
# Initialize the database (from a deployment directory)
cd deployments/bigbrotr
# Apply the SQL initialization scripts in order
# Run a service with custom config
python -m bigbrotr seeder --once --config config/services/seeder.yaml --brotr-config config/brotr.yaml

Every service accepts these CLI flags:

FlagDescription
--config PATHService-specific YAML config
--brotr-config PATHCore database/pool config
--log-level LEVELDEBUG, INFO, WARNING, ERROR
--onceRun a single cycle then exit