Sign inSign up

confinedfish/trackarr

By confinedfish

•Updated 3 months ago

A self-hosted companion app for Radarr and Sonarr — monitor queues, health, and missing media.

Image
Monitoring & observability
0

3.6K

confinedfish/trackarr repository overview

⁠Trackarr

A self-hosted companion app for Radarr⁠ and Sonarr⁠ that gives you a unified view of your media automation — downloads, queue health, missing media, and what needs your attention.

Alpha software — Trackarr is in early development (v5.x-alpha). Expect breaking changes, incomplete features, and rough edges. It connects to live Radarr/Sonarr instances and there is no read-only mode yet. Use at your own risk.

⁠Features

Queue monitoring — See active downloads across all your Radarr and Sonarr instances in one place. Track download progress, status changes, and stalled or failing items.

Health scoring — Every download gets a health score (0–100) based on its lifecycle. Stalls, errors, and lack of progress reduce the score; recoveries and steady progress improve it. Configurable thresholds can automatically flag or remove unhealthy downloads.

Missing media tracking — Automatically detects movies and episodes that are missing from your library. Tracks search state, manages cooldowns between searches, and abandons items that repeatedly fail to find results.

Multi-server support — Connect multiple Radarr and Sonarr instances. Each server gets independent health checks, queue monitoring, and configuration.

Background routines — Scheduled jobs handle heartbeat checks, queue refreshes, health evaluations, missing media detection, and database cleanup. Each routine tracks its own run history and can be individually configured.

Download history — Browse past download attempts with event-level detail to understand what happened and why.

⁠Installation

services:
  trackarr:
    container_name: trackarr
    image: alexzeigler/trackarr:latest
    restart: unless-stopped
    ports:
      - "5264:8080"
    volumes:
      - ./docker-data/trackarr:/config
    environment:
      ASPNETCORE_ENVIRONMENT: Production
      DOTNET_ENVIRONMENT: Production
      ASPNETCORE_URLS: http://+:8080
      ConnectionStrings__DefaultConnection: "Data Source=/config/trackarr.db"
      DataProtection__KeysPath: "/config/keys"
docker compose up -d

Trackarr will be available at http://localhost:5264. The database and configuration are persisted to ./docker-data/trackarr/.

⁠Docker CLI
docker run -d \
  --name trackarr \
  --restart unless-stopped \
  -p 5264:8080 \
  -v /path/to/config:/config \
  -e ASPNETCORE_ENVIRONMENT=Production \
  -e DOTNET_ENVIRONMENT=Production \
  -e ASPNETCORE_URLS=http://+:8080 \
  -e "ConnectionStrings__DefaultConnection=Data Source=/config/trackarr.db" \
  -e DataProtection__KeysPath=/config/keys \
  alexzeigler/trackarr:latest
⁠Unraid
  1. In the Unraid Docker tab, click Add Container
  2. Set Repository to alexzeigler/trackarr:latest
  3. Under Template, you can use the Unraid template XML⁠ from this repo
  4. Configure the port (default 5264) and appdata path (default /mnt/user/appdata/trackarr)
  5. Click Apply

Unraid will automatically detect when a new image is available on Docker Hub and offer to update the container.

⁠Updating

Images are automatically built and pushed to Docker Hub on every release. To update:

  • Docker Compose: docker compose pull && docker compose up -d
  • Docker CLI: docker pull alexzeigler/trackarr:latest and recreate the container
  • Unraid: Click the update notification in the Docker tab
⁠First-time setup
  1. Open Trackarr in your browser
  2. Go to Servers and add your Radarr/Sonarr instances (you'll need the host, port, and API key for each)
  3. Background routines will start syncing queue and missing media data automatically

⁠Configuration

Trackarr stores its settings in the database and exposes them through the UI. Key configuration areas:

CategoryExamples
GeneralApp name, auto-start routines, default server type
Server defaultsQueue monitoring, auto-remove failed downloads, missing media search, request timeout
Health policyStarting score, penalty/reward weights, removal thresholds, grace periods
Missing policySearch cooldown, max failed searches, cascade limit, abandonment threshold
DisplayDate/time format, table page sizes, chart visibility, table density

⁠Development

Requirements: .NET 10.0 SDK⁠

git clone https://github.com/alexzeigler/Trackarr.git
cd Trackarr
dotnet run --project Trackarr/Trackarr.csproj

The app starts at http://localhost:5264. The database is created automatically on first run.

Running tests:

dotnet test
⁠Project structure
Trackarr/              Web app — Blazor Server UI, startup, middleware
Trackarr.Core/         Domain models — media, health, queue, settings
Trackarr.Data/         EF Core DbContext and migrations (SQLite)
Trackarr.Services/     Business logic — API clients, health scoring, search
Trackarr.Routines/     Background job implementations
Trackarr.Client/       Blazor WebAssembly client components
Trackarr.Tests/        Unit and integration tests (xUnit)
⁠Tech stack
  • .NET 10 / ASP.NET Core / Blazor Server
  • SQLite via Entity Framework Core
  • Blazor Bootstrap / Bootstrap
  • xUnit for testing

⁠Contributing

Trackarr is not yet set up for outside contributions. Once the first alpha builds are more stable, bug reports, testing feedback, and setup experience reports will be the most useful.

⁠Disclaimer

Trackarr is an independent project, not affiliated with Radarr, Sonarr, or any download client.

Tag summary

Content type

Image

Digest

sha256:7e582b0bd…

Size

230.2 MB

Last updated

3 months ago

docker pull confinedfish/trackarr