CHUB keeps a Plex library tidy. Point it at Radarr, Sonarr, Lidarr, and Plex, and it takes care of the boring chores on a schedule:
- Posters — rename them to match your library, optimize file sizes, re-apply brand or holiday borders, pull new ones from Google Drive, and clean up orphans.
- Media — find duplicates, flag low-rated or incomplete items, edit metadata inline with a full audit trail, and batch-import into Radarr or Sonarr.
- Upkeep — upgrade searches, rename sweeps, health checks, hardlink audits, ARR tag → Plex label sync.
Run it in Docker, open it in a browser, and configure it once.
| Light | Dark |
|---|---|
![]() |
![]() |
Save this as compose.yaml and adjust the paths to your setup:
services:
chub:
image: ghcr.io/chodeus/chub:latest
container_name: chub
restart: unless-stopped
ports:
- "8000:8000"
environment:
PUID: "1000" # Unraid users: 99
PGID: "1000" # Unraid users: 100
TZ: "America/Los_Angeles"
volumes:
- /srv/apps/chub/config:/config
- /srv/apps/chub/posters:/posters
- /srv/media:/media
- /srv/kometa/assets:/kometaThen:
docker compose up -dOpen http://localhost:8000, create your admin user, connect your Radarr / Sonarr / Plex under Settings → Instances, and enable the modules you want under Settings → Modules.
Rootless alternative. Replace
PUID/PGIDwithuser: "99:100"(the uid:gid that owns your appdata) and pre-chownthe host config dir to match.
Migrating from an older YAML-based version? Drop your config.yml into the config dir before first launch — CHUB backs it up and migrates it automatically. Details: Wiki → Configuration → Auto-migration.
Full walk-through: Wiki → Installation.
Single-command Docker, Unraid, and bare-metal options: Wiki → Installation.
The GitHub Wiki is the full source:
- User Guide — installation, configuration, per-module walk-through, UI tour, webhooks, troubleshooting, FAQ.
- Developer Guide — REST API reference, extending CHUB with new modules, security internals.
CHUB re-implements the DAPS modules on a database-backed, web-driven architecture and refines their behaviour along the way:
- More reliable runs — health_checkarr prunes cleanly in live mode, nohl triggers searches under per-instance configs, and search-driven modules retry next run instead of marking an item done when its search didn't actually complete.
- Safer poster cleanup — poster_cleanarr matches on stable TMDB/TVDB ids before folder names, keeps the last remaining copy of a poster, and pauses instead of purging when an *arr instance is unreachable.
- Better upgrade coverage — upgradinatorr only tags an item once every search (all seasons, for series) succeeds, and skips a zero/blank count rather than clearing the whole library's checked tags.
- Respects your filters — renameinatorr re-applies your ignore filter after each cycle so items tagged to be left alone stay untouched, and honours per-run count limits.
- Correct labels — labelarr matches *arr tags by name (so a tag with internal id 0 still syncs) and removes managed Plex labels once their *arr entry is gone.
- Sharper matching — id-aware fallback plus broader title normalization (
&⇄and, region tags,{tvdbid-…}blocks, season forms) so near-miss titles line up. - Robust rendering & integrations — border_replacerr expands short hex colours the standard way, genuinely skips unchanged posters, and survives leap-day holiday schedules; sync_gdrive and jduparr harden their rclone/jdupes handling and report real failures instead of silent success.
Full module-by-module breakdown: docs/daps-divergence.md.
I write large portions of CHUB's source, tests, and documentation with the help of an AI coding assistant (Anthropic's Claude). I review every change before it lands, but you should know what you're running: if a behavior, doc, or config option looks wrong, trust what the code actually does and open an issue.
CHUB is a fork of DAPS by Drazzilb08 — thank you for the scripts and inspiration that made this possible.
Logo and background artwork is sourced from fanart.tv — images and metadata are provided by fanart.tv and its contributors.
Licensed under the MIT License.


