1
0
Fork 0
mirror of https://github.com/av1155/houndarr.git synced 2026-04-15 02:34:04 -07:00
Self-hosted *arr companion for controlled missing, cutoff, and upgrade searches. https://av1155.github.io/houndarr/
  • Python 81.8%
  • HTML 12.5%
  • CSS 2.6%
  • Shell 1.2%
  • TypeScript 1.2%
  • Other 0.6%
Find a file
2026-04-13 16:56:29 -04:00
.claude fix(helm): prefix chart appVersion with v to match Docker image tags (#364) 2026-04-12 13:43:27 -04:00
.github chore(deps): bump pnpm/action-setup (#382) 2026-04-13 16:42:52 -04:00
charts/houndarr fix(helm): prefix chart appVersion with v to match Docker image tags (#364) 2026-04-12 13:43:27 -04:00
docs feat(whisparr): add Whisparr v3 support (#340) 2026-04-04 13:04:07 -04:00
scripts perf: reduce idle CPU usage (#312) 2026-03-31 16:46:36 -04:00
src/houndarr feat(whisparr): add Whisparr v3 support (#340) 2026-04-04 13:04:07 -04:00
tests feat(whisparr): add Whisparr v3 support (#340) 2026-04-04 13:04:07 -04:00
website chore(deps): consolidate dependabot updates (#381) 2026-04-13 16:33:02 -04:00
.dockerignore feat: add production Dockerfile, entrypoint, and docker-compose 2026-03-12 00:30:18 -04:00
.editorconfig chore: initialize repository with project scaffolding 2026-03-12 00:06:47 -04:00
.gitignore chore: add Claude Code dev infrastructure (#323) 2026-04-01 15:34:31 -04:00
AGENTS.md feat(whisparr): add Whisparr v3 support (#340) 2026-04-04 13:04:07 -04:00
CHANGELOG.md chore: bump version to 1.7.0 (#342) 2026-04-04 13:16:20 -04:00
CLAUDE.md chore: add Claude Code dev infrastructure (#323) 2026-04-01 15:34:31 -04:00
CODE_OF_CONDUCT.md docs: add Contributor Covenant Code of Conduct v2.1 (#145) 2026-03-15 15:58:59 -04:00
CODEOWNERS ci: add all GitHub Actions workflows and project configuration 2026-03-12 00:17:28 -04:00
CONTRIBUTING.md security: add Huntarr vulnerability audit tests and smoke test (#277) 2026-03-21 17:41:55 -04:00
docker-compose.dev.yml feat: add production Dockerfile, entrypoint, and docker-compose 2026-03-12 00:30:18 -04:00
docker-compose.yml fix(auth): default SameSite cookie policy to lax (#318) 2026-04-01 13:48:52 -04:00
Dockerfile perf: reduce idle CPU usage (#312) 2026-03-31 16:46:36 -04:00
entrypoint.sh security: add Huntarr vulnerability audit tests and smoke test (#277) 2026-03-21 17:41:55 -04:00
LICENSE chore(license): switch to AGPLv3 (#275) 2026-03-21 15:38:33 -04:00
pyproject.toml chore(deps): consolidate dependabot updates (#381) 2026-04-13 16:33:02 -04:00
README.md docs: redesign README as a landing page (#331) 2026-04-01 16:29:04 -04:00
requirements-dev.txt chore(deps): sync requirements files with pyproject.toml (#384) 2026-04-13 16:56:29 -04:00
requirements.txt chore(deps): sync requirements files with pyproject.toml (#384) 2026-04-13 16:56:29 -04:00
SECURITY.md docs(security): align policy and CI docs (#280) 2026-03-21 18:13:05 -04:00
VERSION chore: bump version to 1.7.0 (#342) 2026-04-04 13:16:20 -04:00

Houndarr logo

Houndarr

Automated missing-media search for your *arr stack.
Small batches. Polite intervals. Zero indexer abuse.

GitHub stars License: AGPL-3.0 Last commit GitHub release Contributors

Documentation  •  Quick Start  •  Docker  •  Helm Chart  •  Report Bug


Houndarr dashboard



Houndarr log viewer    Houndarr settings

What is Houndarr?

Radarr, Sonarr, Lidarr, Readarr, and Whisparr monitor RSS feeds for new releases, but they do not go back and actively search for content already in your library that is missing or below your quality cutoff. Their built-in "Search All Missing" button fires every item at once, which can overwhelm indexer API limits and get you temporarily banned.

Houndarr fixes this by searching slowly, politely, and automatically. It works through your backlog in small, configurable batches with sleep intervals between cycles, per-item cooldowns, and hourly API caps. It runs as a single Docker container alongside your existing *arr stack and stays out of the way.

Key Features

Supported Apps

  • Radarr, Sonarr, Lidarr, Readarr, and Whisparr
  • Connect multiple instances of each

Search Modes

  • Missing media (episodes, movies, albums, books)
  • Cutoff-unmet items below your quality profile
  • Library upgrades for items that already meet cutoff
  • Configurable search context (episode vs. season, album vs. artist, book vs. author)

Rate Limiting and Safety

  • Small, configurable batch sizes with sleep intervals between cycles
  • Per-item cooldown prevents re-searching the same item too soon
  • Per-instance hourly API cap keeps indexer usage in check
  • Download-queue backpressure gate skips cycles when the queue is full
  • Bounded multi-page scanning so deep backlog items are not starved

Web UI

  • Live dashboard with instance status cards and run-now buttons
  • Filterable, searchable log viewer with multi-format copy and export
  • Dark-themed interface (FastAPI + HTMX + Tailwind CSS)

Quick Start

Create a docker-compose.yml:

services:
  houndarr:
    image: ghcr.io/av1155/houndarr:latest
    container_name: houndarr
    restart: unless-stopped
    ports:
      - "8877:8877"
    volumes:
      - ./data:/data
    environment:
      - TZ=America/New_York
      - PUID=1000
      - PGID=1000
docker compose up -d

Open http://<your-host>:8877 and create your admin account on the setup screen.

Prefer docker run?
docker run -d \
  --name houndarr \
  --restart unless-stopped \
  -p 8877:8877 \
  -v /path/to/data:/data \
  -e TZ=America/New_York \
  -e PUID=1000 \
  -e PGID=1000 \
  ghcr.io/av1155/houndarr:latest

Replace /path/to/data with an absolute path on your host where Houndarr should store its database and master key.

For environment variables, reverse proxy setup, Kubernetes, Helm, and building from source, see the full documentation.

What Houndarr Does NOT Do
  • No download-client integration: it triggers searches in your *arr instances, which handle downloads
  • No Prowlarr/indexer management: your *arr instances manage their own indexers
  • No request workflows: no Overseerr/Ombi-style request handling
  • No multi-user support: single admin username and password
  • No media file manipulation: it never touches your library files

Security and Trust

  • No telemetry, analytics, or call-home. The only outbound connections go to your configured *arr instances.
  • API keys are encrypted at rest with Fernet (AES-128-CBC + HMAC-SHA256) and never sent back to the browser.
  • Authentication uses bcrypt password hashing, signed session tokens, CSRF protection, and login rate limiting.
  • The container runs as a non-root user after PUID/PGID remapping.
  • 63 integration tests validate immunity to every finding from the Huntarr.io security review; a live smoke test runs in CI on every PR.

For details on how Houndarr handles credentials, network behavior, and trust boundaries, see Trust and Security. To report a vulnerability, see SECURITY.md.

Contributing and Community

See CONTRIBUTING.md for development workflow, coding standards, and quality gates.

Star History Chart



Contributors



If Houndarr is useful to you, consider giving it a star on GitHub.

License

GNU AGPLv3