Skip to content

chodeus/chub

Repository files navigation

CHUB logo

CHUB

Chodeus' Media Script Hub

A self-hosted, all-in-one media asset manager for your Plex/ARR stack.

MIT License Python Docker Image GitHub Issues GitHub Stars


What is CHUB?

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.


Screenshots

Light Dark
Dashboard light Dashboard dark

Quickstart

Docker Compose (recommended)

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:/kometa

Then:

docker compose up -d

Open 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/PGID with user: "99:100" (the uid:gid that owns your appdata) and pre-chown the 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.

Other install methods

Single-command Docker, Unraid, and bare-metal options: Wiki → Installation.


Documentation

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.

Improvements over DAPS

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.


A note on AI-assisted development

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.


Credits

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.

About

CHUB — Chodeus' Media Script Hub. Self-hosted media asset manager for your Plex/ARR stack.

Topics

Resources

License

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors