Releases: x-name15/gorrent
Releases · x-name15/gorrent
Release list
v1.6.6: Dependabot Integration
CI/CD
- Dependabot Integration: Added
.github/dependabot.ymlto automatically track and update Go modules (go.mod) and GitHub Actions workflows on a weekly basis, ensuring Gorrent always runs on the latest security patches. - Auto-Merge GitHub Action: Added a custom workflow (
dependabot-auto-merge.yml) that automatically merges Dependabot Pull Requests forpatchandminorversion updates, provided they pass all CI/CD test gates. This keeps maintenance completely hands-free while blocking potentially breakingmajorupdates.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.6-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.6-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.6-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.6-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.6-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.6 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.6.5: Logs for everyone
Added
- Debug Mode (
log_level): Added an optionallog_levelfield in thedaemonconfig block. The default is"minimal"(quiet). Setting it to"debug"enables deep diagnostic instrumentation across the REST API, Scrapers, RSS parser, and Garbage Collector without pulling external logging dependencies, keeping the Docker container microscopic.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.5-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.5-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.5-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.5-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.5-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.5 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.6.4: We use YAML now
Changed
- Config Format: Migrated the default configuration file from
config.jsontoconfig.yaml. This provides a much cleaner, human-readable format that supports# commentsnatively. This change drastically reduces token usage and formatting errors for AI Agents (Claude, Hermes, OpenClaw) when automating Gorrent setups.
Documentation
- README Updates: Updated the documentation and examples to strictly use YAML formatting instead of JSON to match the new default
config.yaml.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.4-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.4-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.4-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.4-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.4-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.4 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.6.3: Security, Stability and Testing Update
Added
- CI / CD Pipeline: Upgraded
.github/workflows/entry.yamlto run tests with the-racedetector and-shuffle=onflags to ensure test stability and concurrency safety before any build. - Security guards against Path Traversal: Added rigorous
filepath.Cleanandstrings.HasPrefixvalidation towatcher.goandclient.go. This prevents malicious symlinks or filenames like../../config.jsonfrom escaping thewatch_dirand overwriting sensitive files. - Memory Exhaustion Protections (RAM Bomb): Implemented
io.LimitReader(up to 5MB) when reading JSON API responses (likebittorrented) and.magnetfiles in the Watch Folder, preventing intentional OOM (Out Of Memory) attacks. - Directory Listing Prevention: Wrapped the
/files/endpoint innetutil.DisableDirListingto throwos.ErrNotExist(404) on directory access, strictly serving only specific files. - Scraper Mock Integration Tests: Built an entire mock-test suite in
internal/testsfor all 10 scrapers (1337x, BitTorrented, EZTV, FitGirl, Nyaa, PirateBay, RuTracker, SubsPlease, Torrents.csv, YTS). These tests act as a 1:1 simulation of Torlink's logic, asserting that Gorrent safely and accurately parses exact Torlink-style HTML/JSON payloads without ever hitting real internet services. Theinternal/testsfolder and*_test.gofiles are entirely isolated and blocked from Docker via.dockerignore.
Fixed
- 1337x Mirror Invalidations: Implemented a
sync.RWMutexcache for thelastWorkingHostso the scraper dynamically falls back on other domains if one fails, drastically increasing reliability. - Daemon GC deduplication loop: Files are now proactively moved to
handled/before callingAddMagnetinwatcher.go, preventing edge cases where the Daemon crashes between steps and downloads files twice.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.3-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.3-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.3-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.3-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.3-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.3 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.6.1: Whoops, hotfix incoming!
Fixed
- Callback goroutine leak: Callback goroutine is now bounded by a
context.WithTimeoutof 7 days. Dead or stalled torrents no longer leak goroutines indefinitely. Logs a clear message when abandoned.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.1-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.1-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.1-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.1-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.1-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.1 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.6.0: Huge, MAJOR update with all bs
Added
- Native Hardlinking: Added
hardlink_dirconfig parameter. Gorrent now automatically creates zero-byte hardlinks (preserving category folders) for completed downloads, allowing seamless integration with Plex/Jellyfin without interrupting the seeding process. - Post-Processing Scripts: Added
post_scriptconfig parameter. Gorrent can now execute any script when a torrent reaches 100%. Environment variables (GORRENT_HASH,GORRENT_NAME,GORRENT_PATH,GORRENT_CATEGORY) are injected automatically. For Docker deployments, use thecallbackwebhook instead. - Post-Processing State Manager: Created a background engine that writes
gorrent_processed.jsontodata_dirto guarantee scripts and links are executed exactly once per torrent. - AI Skills Full Awareness: Taught Claude, Hermes, and OpenClaw how to manipulate all v1.6.0 parameters via
config.jsonso users can enable these features strictly via natural language.
Fixed
- RSS — Nyaa/ShowRSS magnet resolution: RSS parser now correctly extracts magnet links from
<enclosure url="magnet:...">and<torrent:magnetURI>fields. Previously only read<link>, which for Nyaa is a page URL, not a magnet. - RSS — history key stability: History tracker now uses the magnet URI as key instead of
<link>, making it consistent across feeds that report items differently. - RSS — unnecessary disk writes:
rss_history.jsonis now saved once per feed poll instead of once per matched item. - Post-Processor — wrong state directory:
gorrent_processed.jsonnow goes todata_dirinstead ofdownload_dir, consistent withrss_history.json. - Post-Processor —
bashhardcoded:post_scriptnow runs the script directly as an executable instead of viabash, allowing native binaries and properly-configured scripts to work. - Security — Hardlink path traversal: Added validation that hardlink destination is always under
hardlink_dirto prevent malicious torrent names from escaping the target directory. - WebSocket — idle goroutine leak: WS handler now sends periodic pings and sets a 60s read deadline, disconnecting dead clients automatically.
- Status API —
BytesReadDataserialized as object: Fixedstats.BytesReadDatato use.Int64()so it serializes correctly as a number in JSON. - Performance — regex compiled per request: Infohash validation regex is now a package-level
varinstead of being recompiled on every download request. - Docker —
data/volume not mounted:docker-compose.ymlnow mounts./data:/dataso RSS history and post-processing state survive container restarts. - Docker — missing healthcheck:
docker-compose.ymlnow uses/healthendpoint for Docker health monitoring.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.6.0-windows-amd64.zip |
| Linux (x64) | gorrent-1.6.0-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.6.0-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.6.0-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.6.0-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.6.0 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.5.5: More Automatization things!
Added
- RSS Auto-Downloader: Added native, zero-dependency XML parser to monitor RSS feeds (e.g. Nyaa, ShowRSS) and automatically download torrents matching your Regex rules into specific categories. Maintains a clean
rss_history.jsonstate in your data directory to prevent duplicates. - P2P Garbage Collector: Added optional Auto-Cleanup system (
auto_cleanupinconfig.json). Drops active torrents from the daemon once they reach a targetseed_ratio(e.g. 1.5) ormax_seed_daysto conserve bandwidth and RAM. Downloaded files are kept 100% intact for Plex/Jellyfin. - AI Agent Skills Updated: Taught Claude, Hermes, and OpenClaw how to manage the new RSS feeds, Auto-Cleanup settings, and Bandwidth Throttling directly via
config.json, as well as interacting with the public/metricsendpoint. - OpenAPI Specification: Fully synchronized
cmd/daemon/openapi.yamlwith v1.5.x, including exactX-API-Keyauthentication mappings, the newsourcesearch parameters, and async webhookcallbackfields.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.5.5-windows-amd64.zip |
| Linux (x64) | gorrent-1.5.5-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.5.5-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.5.5-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.5.5-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.5.5 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.5.1: Source Targeting Optimization
Added
- Source Targeting: The API and CLI now support filtering by a specific tracker (e.g.
--source nyaaor?source=yts). This stops the engine from concurrently hitting all 9 scrapers, reducing unnecessary noise and preventing IP bans when searching for niche content. - AI Agent Skills Updated: Fully updated the bundled
.mdskills for Claude, Hermes, and OpenClaw so that AI agents natively understand how to use the new--sourcetargeting.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.5.1-windows-amd64.zip |
| Linux (x64) | gorrent-1.5.1-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.5.1-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.5.1-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.5.1-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.5.1 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.5.0: The Homelab Grail Update
Added
- Bandwidth Throttling: Added
max_download_rateandmax_upload_rate(in KB/s) toconfig.jsonto prevent Gorrent from choking your local network. - WebSocket Endpoint: Added
ws://localhost:7800/api/wsto stream live download status at 1Hz, paving the way for real-time Web UIs. - Prometheus Metrics & Healthcheck: Added
/metricsexposing raw Prometheus format stats (gorrent_bytes_downloaded, etc.) and a/healthendpoint for Docker auto-healing. - AI Agent Skills Updated: Fully updated the bundled
.mdskills for Claude, Hermes, and OpenClaw so that AI agents natively understand how to use the new--categoryflag,stopcommands,X-API-Keyheaders, and WebSockets.
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.5.0-windows-amd64.zip |
| Linux (x64) | gorrent-1.5.0-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.5.0-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.5.0-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.5.0-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.5.0 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG
v1.1.5: Auto-Export, Security & Download Management
Added
- Auto-Export .torrent files: Gorrent can now optionally export a
.torrentbackup file into yourdownloadsdirectory the moment it finishes fetching the metadata for any magnet link (Issue #61). This feature is disabled by default to prevent clutter, and can be enabled by setting"auto_export_torrent": truein thetorrentsection of yourconfig.json. - Stop & Delete Torrents: Added a new
DELETE /api/torrent?hash=...endpoint and a./gorrent.sh stop <hash>CLI command to abort and clean up active downloads. - API Key Security: Added optional API Key authentication. Set
"api_key": "your_secret"in thedaemonconfig block to secure the REST API against unauthorized access on your local network. The CLI wrapper automatically uses it. - Bare Infohash Support: Gorrent can now accept a raw 40-character infohash instead of a full magnet link for downloads
- Custom Trackers: You can now define an array of
"trackers"in thetorrentblock of yourconfig.json. These trackers will be automatically injected into every magnet link processed by the daemon, boosting DHT peer discovery - Category-Based Directories: The CLI and API now support an optional
--categoryflag (e.g.--category movies). Gorrent will save the torrent in a subfolder named after the category (e.g./downloads/movies), or map it to a specific directory if defined in the new"category_dirs"config object. Perfect for homelab media server organization!
📦 Downloads
| Operating System | Download Archive |
|---|---|
| Windows (x64) | gorrent-1.1.5-windows-amd64.zip |
| Linux (x64) | gorrent-1.1.5-linux-amd64.tar.gz |
| Linux (ARM64) | gorrent-1.1.5-linux-arm64.tar.gz |
| macOS (Intel) | gorrent-1.1.5-darwin-amd64.tar.gz |
| macOS (Apple Silicon) | gorrent-1.1.5-darwin-arm64.tar.gz |
Docker Images (multi‑arch: amd64 + arm64):
- GHCR:
docker pull ghcr.io/x-name15/gorrent:v1.1.5 - GHCR Latest:
docker pull ghcr.io/x-name15/gorrent:latest
View Full CHANGELOG