Active fork of Agregarr with performance fixes, placeholder lifecycle improvements, FlareSolverr support, and open upstream PRs bundled into a single Docker image. Available as bitr8/agregarr on Docker Hub.
Tip
Latest release: v2.9.0. FlixPatrol collections work again (Cloudflare was blocking every scrape since March), health checks surface problems before you notice them, and library essentials generate genre/decade/resolution collections from what Plex already knows. Full release notes.
Available on Docker Hub as bitr8/agregarr.
| Tag | What it tracks |
|---|---|
:latest |
Stable releases. Recommended for most users. |
:2.9.0 (etc.) |
Pinned to a specific release. |
:develop |
Bleeding edge. Builds on every push to develop, may break. |
Multi-arch release tags ship amd64 and arm64 (Apple Silicon, RPi 4+). The :develop tag builds amd64 only.
Switching from upstream? Replace the image line in your existing compose file. Config volumes are compatible.
- image: agregarr/agregarr:latest
+ image: bitr8/agregarr:latestservices:
agregarr:
image: bitr8/agregarr:latest
container_name: agregarr
volumes:
- /path/to/config:/app/config
- /path/to/placeholder/movies:/data/movies # Optional: Coming Soon
- /path/to/placeholder/tv:/data/tv # Optional: Coming Soon
environment:
- TZ=Australia/Sydney
- PUID=1000 # Your host user ID (run `id -u`)
- PGID=1000 # Your host group ID (run `id -g`)
- UMASK=022
ports:
- 7171:7171
restart: unless-stoppedWarning
File permissions: Set PUID and PGID to match the user that owns your media directories. Without these, the container runs as root and creates directories with restrictive permissions that break imports in Sonarr, Radarr, and other apps. On Unraid, use PUID=99 and PGID=100.
For general Agregarr configuration (services, collections, overlays etc.), see the upstream docs.
FlixPatrol sits behind Cloudflare and blocks automated requests at the TLS layer. If you use FlixPatrol collections (Networks Top 10, streaming charts), you need FlareSolverr. The Docker image bundles headless Chromium as a fallback, but FlareSolverr is more reliable.
flaresolverr:
image: ghcr.io/flaresolverr/flaresolverr:latest
container_name: flaresolverr
environment:
- LOG_LEVEL=info
restart: unless-stoppedSet the URL under Settings > Sources > FlareSolverr URL (e.g. http://flaresolverr:8191).
This fork tracks upstream Agregarr and stays GPL-3.0. Changes that fit upstream go back as PRs (46 merged, 13 open). Fork-only features rely on behaviour or trade-offs upstream may not want to adopt.
Detail for each feature is in the release notes for the version that shipped it.
- Ownership by label: Agregarr only touches collections carrying its own label, so your own collections with matching names are left alone. (v2.8.1)
- Library essentials: one config generates a smart collection per genre, decade, resolution, or content rating in a library. Include/exclude mode, auto-posters. (v2.9.0)
- Collection presets: twelve starter configs (TMDB, IMDb, Trakt, Coming Soon, Netflix Top 10) that fill the form for you. (v2.8.0)
- Separators: empty collections that carry a title card, breaking a long row into labelled groups. (v2.8.0)
- Per-user targeting: restrict a collection to a single Plex user via label filtering. (v2.8.0, cherry-pick from upstream #555)
- Label collections: build a collection from a Plex label. (Contributed by Damienlee69, v2.9.0)
- Export/import: back up collection configs as JSON and restore them on the same or a different instance. (v2.9.0)
- Last Episode Added sort for smart collections.
- Dashboard sync progress cards: live progress, stats, ETA, start/stop for both collection and overlay syncs.

- Maintainerr season deletion countdown: reads Maintainerr's collection data and draws the countdown on season posters using your templates. (v2.7.0)

- Episode media scanning: aggregates actual episode files for resolution/HDR/DV badges instead of trusting show-level metadata. Per-library toggle. (v2.5.0)
- Next-episode countdowns sourced from Sonarr (no gap when episodes air). (v2.7.0)
- Estimated release date flag: templates can distinguish fabricated dates from published ones. (v2.9.0)
- Canvas size configurable in the overlay editor (was locked to 1000x1500). (v2.9.0)
- Total seasons / seasons available template variables. (Contributed by Bergasha)
Upstream makes individual API calls per item, per rating source, per cache miss. With 40+ collections and 10k+ items, syncs take hours. This fork batches IMDb prefetch, caches adaptively by content age, batches Plex metadata in groups of 200, caches TMDB resolution in SQLite, and uses plain HTTP for Letterboxd (280ms vs 10.5s per page). Syncs that took hours complete in minutes.
Retroactive filter application, self-healing for stuck DB records, direct Plex deletion for stale items, TV episode cleanup, Sonarr folder naming, .plexmatch for movies, download status awareness, post-sync hub verification, and TV label cleanup. Detail in the release notes for v2.3.0 through v2.7.0.
Thirteen diagnostic checks run on a schedule and surface results in Settings > Health. Transient failures get a grace window, checks can be muted individually, and job runs are persisted with per-job detail. (v2.9.0)
Session authentication on all settings routes, path containment on file operations, ZIP import limits, URL validation, download destination checks. (v2.9.0)
| PR | Description |
|---|---|
| #613 | Don't dismiss modals when clicking portaled children |
| #607 | Sort TMDB franchise parts by release date |
| #606 | Self-heal stale collectionRatingKey during label fallback |
| #605 | Invalidate stale AWS WAF tokens and add solve backoff |
| #604 | Quick sync exclusion bypass fix |
| #599 | Apply mutual exclusion to filtered hub collections |
| #596 | Detect real content in TV placeholder cleanup via Plex |
| #595 | Fix jobs page crash on unparseable cron expressions |
| #594 | Sanitise poster filenames to match validation allowlist |
| #526 | Retroactive placeholder filter evaluation during cleanup |
| #516 | Check *arr download status + Sonarr folder naming |
| #498 | Deduplicate hub identifiers to prevent convergence failures |
| #492 | Title fallback for TV placeholders without TMDB GUID |
| Feature | Why Fork-Only |
|---|---|
| Direct Plex API deletion for stale placeholders | Requires "Allow media deletion" in Plex |
| Post-sync hub verification for label leaks | Safety net for fork's label-based filtering |
GPL-3.0, same as upstream.
Built on Agregarr.