Development
May 26, 2026 ยท View on GitHub
Work from a source checkout for local development; uv tool install quasarr is for end users.
Setup
Install the application and developer tooling:
uv sync --group dev
Install packaging tools as well when you need build artifacts:
uv sync --group dev --group build
Create a local .env from .env.example and set at least INTERNAL_ADDRESS. EXTERNAL_ADDRESS, USER, PASS, AUTH, and TZ are optional but commonly used during local runs. On first start, Quasarr also writes Quasarr.conf to store the config path.
Run From Source
uv run Quasarr.py
The first run guides you through hostname, JDownloader, and optional flaresolverr-go setup.
Development Services
Start the supporting services with:
CONFIG_VOLUMES=/path/to/config docker compose -f docker/dev-services-compose.yml up
docker-compose -f docker/dev-services-compose.yml up also works on legacy Docker installations. CONFIG_VOLUMES is required. The compose file enables JDownloader and flaresolverr-go by default; the radarr, sonarr, lidarr, magazarr, and sponsorshelper services are provided as commented examples.
For most integration checks, use the CLI simulator instead of a full *arr stack:
uv run cli_tester.py
Validation
Run the unit tests:
uv run python -X utf8 -m unittest discover -s tests
Run linting:
uv run ruff check .
Run the repository maintenance workflow:
uv run python -X utf8 pre-commit.py
uv run pre-commit install
Use uv run python -X utf8 pre-commit.py --upgrade when intentionally refreshing pinned dependencies.