Get Catalogarr

Releases are pulled live from the Forgejo repository. Source archives and any attached binaries are listed below.

Quick install

bash
# Clone and set up
git clone https://gitlab.patserver.com/patrick19368/Catalogarr.git
cd Catalogarr
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txt

# Configure
cp .env.template .env
# edit .env with your values

# First run — creates admin account
python3 admin.py

# Start
python3 main.py

# Or production with Gunicorn
gunicorn --config gunicorn.conf.py main:app

Latest release

Latest
v2.1.0 V2.1.0 2026-03-30

Release notes

v2.1.0 brings episode-level archive and restore, live restore progress, automatic re-add to Sonarr/Radarr on restore, and a reworked dashboard. A large batch of fixes across the archive/restore pipeline, Python 3.13 compatibility, and database migration reliability. Added - Restore progress bar showing file count, bytes copied, and import stage live in the modal. Copy runs in the background so the modal can be closed. - Restore re-adds movies and TV shows to Radarr/Sonarr by TMDB ID before scanning so ARR picks them up properly instead of requiring a manual import. - Archive modal checks the database before copying — skips items already archived and shows a list with an option to remove them from Sonarr/Radarr. - Restore modal blocks if the movie is already active in Radarr or if the source drive is cold. - Episode-level diff for archive and restore. Only missing episodes are copied in either direction instead of entire seasons. - GET /api/v3/archive/episode-diff — per-season episode breakdown comparing Sonarr against what is on the archive drive. - GET /api/v3/archive/media-check — DB check to determine if a movie or show is already archived. - GET /api/v3/restore/movie-check — DB check to determine if a movie is already active in Radarr. - POST /api/v3/archive/remove-from-arr — removes an already-archived item from Sonarr/Radarr without touching files. - Merge duplicate media is now a scheduled task running daily and available on demand from the Tasks page. - Tasks page shows live per-task status via SSE. Fixed - Restore was sending undefined as dest_root due to selectFolder overwriting data-path with an undefined second argument. - Season diff was failing with TypeError because _archive_has_episodes returns a dict keyed by season, not a flat set. - Sonarr episode lookup now uses GET /api/v3/episode instead of parsing S01E01 from filenames. - Re-adding movies to Radarr was failing with 400 due to missing qualityProfileId. Now fetches the first available quality profile before posting. - Restore showed all episodes as missing when sonarr_id was null. Now falls back to a title search against the Sonarr series list. - DownloadedMoviesScan replaced with a re-add then RescanMovie flow for restored movies. - Stuck restore queue rows from interrupted copies now cleared on startup. - Root folder query timeout raised to 30 seconds for slow Radarr instances. - Root folder paths not accessible on the Catalogarr host are flagged as mount_required and excluded from the destination picker. - Archive and restore checks now use the database as source of truth. Physical path checks removed. - Archive cold drive check uses a LIKE path match so subpaths are caught correctly. - Scan and enrich now runs on the copied folder before removing the item from Sonarr/Radarr. - gevent updated to 24.11.1 for Python 3.13 compatibility. - gunicorn updated to 23.0.0 for Python 3.13 compatibility. - Episode numbers above E99 no longer create separate media entries per episode. - Database migration guard was silently skipping column additions on existing installs. - Connector INSERT referenced a username column that didn't exist on older databases. Changed - Dashboard layout — Connectors and System are side by side, Drive Health and Scan Workers each get their own full-width row. - System card now shows instance name, runtime, OS, version, and drive health warnings. - Drive Health cards truncate long paths and show the drive label if set. - Templates cleaned of emojis and AI-generated section decorators. - Drive cold/online toggle now available directly in Settings under the Drives section.

Previous releases

1 release
Version Name Date Downloads
V2.0.0 V2.0.0 2026-03-20

Run as a systemd service

bash
sudo cp catalogarr.service /etc/systemd/system/
sudo systemctl enable --now catalogarr

The service file is included in the repo root. Edit it to match your install path and user before copying.