Skip to content

Fork Changes

Michael edited this page Jul 17, 2026 · 2 revisions

Fork Changes

What started as targeted stability fixes has grown into a substantial feature extension. This page documents everything that differs from the upstream bitmagnet-io/bitmagnet project.


Stability fixes

  • Queue index fix — expression index on queue_jobs eliminates the primary DB memory pressure that caused 24-hour crash cycles
  • DHT network recovery — self-healing ktable health monitor with automatic reseed, no more permanent stalls after network interruption
  • UDP connection cap — global semaphore prevents goroutine storms under high scaling factors
  • Queue backpressure — configurable depth limit stops the queue growing unboundedly under TMDB load
  • Bootstrap node fixes — updated DHT bootstrap nodes, removed stale/unreliable entries
  • BEP-47 padding exclusion — synthetic .pad/ padding files no longer bloat the torrent_files table
  • Disk guardian — optional script pauses crawling at a configurable disk usage threshold

New features

  • Prowlarr integration — scheduled crawling of configured Prowlarr indexers with per-indexer categories, seed refresh, Crawl Now button, and Angular UI page. See Prowlarr Integration.
  • OMDb enrichment — Rotten Tomatoes, Metacritic, awards, box office via the OMDb API. Runs in the classifier pipeline alongside TMDB. See OMDb Enrichment.
  • DB size management — configurable per-source trim with Prowlarr protection, dry run mode, and batch processing. See DB Size Management.
  • DHT sidecar status — dashboard health probe for split-worker deployments where the DHT crawler runs behind a VPN in a separate container. See DHT Sidecar Setup.
  • Full classification for Prowlarr torrents — TMDB and OMDb enrichment runs on all torrents regardless of source (upstream-derived behavior skipped TMDB for Prowlarr imports).
  • Bulk database import - import existing torrent DB dumps (RARBG, Pirate Bay, magnetico) through the web UI. Auto-detects CSV/NDJSON/SQL/SQLite, streams large files, runs async with progress, filters by category, and trim-protects imported sources. See Database Import.
  • RSS feed ingestion - poll RSS/Torznab feeds on a schedule into the importer, with a format-agnostic parser (magnet hex/base32, Torznab/Newznab attrs, plain info_hash, ezRSS, non-UTF-8 charsets). See RSS Feeds.
  • ThePornDB classification - classifies and titles adult content that TMDB does not cover. See ThePornDB Classification.

Infrastructure

  • CI/CD — GitHub Actions multi-arch Docker build to GHCR on every push to main
  • Hardened compose — Postgres on dedicated bridge network, service_healthy depends_on, tuned autovacuum, memory limits
  • Alpine pinned — CI Dockerfile pinned to alpine:3.20 for reproducible builds

Commit reference

Fix Issue/PR Commit
queue_jobs expression index #496 c4291d7
StableBloomFilter nil panic fix #446 b67e253
Updated DHT bootstrap nodes #454 2699390
Exclude BEP-47 padding files #458 eae031e
TZ fix, fd limit, processor tuning #485 6c6016d
Global UDP query semaphore #348 e62c755
DHT network recovery #359 9757191
Queue backpressure valve b06a191
Disk usage guardian script #187 3048dd5
Prowlarr indexer crawler d7d291d
OMDb enrichment
DHT sidecar health status 875185a
Prowlarr TMDB/OMDb classification a0dddc9
Sidecar worker status in dashboard 33c2c20

Clone this wiki locally