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.
Prerequisites
Section titled “Prerequisites”- Python 3.11 or later
- PostgreSQL 16 or later (for integration tests)
- uv package manager
- Git
Install from Source
Section titled “Install from Source”# Clone the repositorygit clone https://github.com/BigBrotr/bigbrotr.gitcd bigbrotr
# Install all dependencies including dev and docs groupsuv sync --group dev --group docsThis creates a virtual environment in .venv/ and installs all dependencies.
Verify Installation
Section titled “Verify Installation”# Run the test suite (unit tests only)pytest tests/ --ignore=tests/integration/ -v
# Run linting and type checkingruff check src/ tests/mypy src/bigbrotr
# Or run everything at oncemake ciAvailable Make Targets
Section titled “Available Make Targets”| Command | Description |
|---|---|
make lint | Run ruff linter |
make format | Run ruff formatter |
make format-check | Check formatting without changes |
make typecheck | Run mypy strict type checking |
make test | Run all tests |
make test-fast | Run unit tests only (skip integration) |
make coverage | Run tests with coverage report |
make audit | Security audit of dependencies |
make ci | Run lint + typecheck + test (full CI) |
Development Workflow
Section titled “Development Workflow”BigBrotr uses a strict branching model:
mainis release-ready. Never push directly.developis the integration branch.- All work happens on feature branches created from
develop.
# Create a feature branchgit checkout developgit pull origin developgit checkout -b feat/my-feature
# Make changes, then verifymake ci
# Commit with conventional commit formatgit commit -m "feat: add my feature"Branch naming follows the commit type: feat/, fix/, refactor/, docs/, test/, chore/.
Running Services Locally
Section titled “Running Services Locally”To run services outside Docker, you need a PostgreSQL instance with the BigBrotr schema:
# Initialize the database (from a deployment directory)cd deployments/bigbrotr# Apply the SQL initialization scripts in order
# Run a service with custom configpython -m bigbrotr seeder --once --config config/services/seeder.yaml --brotr-config config/brotr.yamlEvery service accepts these CLI flags:
| Flag | Description |
|---|---|
--config PATH | Service-specific YAML config |
--brotr-config PATH | Core database/pool config |
--log-level LEVEL | DEBUG, INFO, WARNING, ERROR |
--once | Run a single cycle then exit |
Next Steps
Section titled “Next Steps”- Contributing — coding standards, testing, and PR workflow.
- Testing — how to write and run tests.
- Architecture Overview — understand the codebase structure.