Skip to content

Releases: x-name15/gorrent

v1.6.6: Dependabot Integration

Choose a tag to compare

@github-actions github-actions released this 14 Jul 10:03

CI/CD

  • Dependabot Integration: Added .github/dependabot.yml to 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 for patch and minor version updates, provided they pass all CI/CD test gates. This keeps maintenance completely hands-free while blocking potentially breaking major updates.


📦 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

Choose a tag to compare

@github-actions github-actions released this 10 Jul 10:06

Added

  • Debug Mode (log_level): Added an optional log_level field in the daemon config 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

Choose a tag to compare

@github-actions github-actions released this 10 Jul 09:46

Changed

  • Config Format: Migrated the default configuration file from config.json to config.yaml. This provides a much cleaner, human-readable format that supports # comments natively. 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

Choose a tag to compare

@github-actions github-actions released this 10 Jul 07:09

Added

  • CI / CD Pipeline: Upgraded .github/workflows/entry.yaml to run tests with the -race detector and -shuffle=on flags to ensure test stability and concurrency safety before any build.
  • Security guards against Path Traversal: Added rigorous filepath.Clean and strings.HasPrefix validation to watcher.go and client.go. This prevents malicious symlinks or filenames like ../../config.json from escaping the watch_dir and overwriting sensitive files.
  • Memory Exhaustion Protections (RAM Bomb): Implemented io.LimitReader (up to 5MB) when reading JSON API responses (like bittorrented) and .magnet files in the Watch Folder, preventing intentional OOM (Out Of Memory) attacks.
  • Directory Listing Prevention: Wrapped the /files/ endpoint in netutil.DisableDirListing to throw os.ErrNotExist (404) on directory access, strictly serving only specific files.
  • Scraper Mock Integration Tests: Built an entire mock-test suite in internal/tests for 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. The internal/tests folder and *_test.go files are entirely isolated and blocked from Docker via .dockerignore.

Fixed

  • 1337x Mirror Invalidations: Implemented a sync.RWMutex cache for the lastWorkingHost so 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 calling AddMagnet in watcher.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!

Choose a tag to compare

@github-actions github-actions released this 09 Jul 09:59

Fixed

  • Callback goroutine leak: Callback goroutine is now bounded by a context.WithTimeout of 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

Choose a tag to compare

@github-actions github-actions released this 09 Jul 09:39

Added

  • Native Hardlinking: Added hardlink_dir config 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_script config 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 the callback webhook instead.
  • Post-Processing State Manager: Created a background engine that writes gorrent_processed.json to data_dir to 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.json so 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.json is now saved once per feed poll instead of once per matched item.
  • Post-Processor — wrong state directory: gorrent_processed.json now goes to data_dir instead of download_dir, consistent with rss_history.json.
  • Post-Processor — bash hardcoded: post_script now runs the script directly as an executable instead of via bash, allowing native binaries and properly-configured scripts to work.
  • Security — Hardlink path traversal: Added validation that hardlink destination is always under hardlink_dir to 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 — BytesReadData serialized as object: Fixed stats.BytesReadData to use .Int64() so it serializes correctly as a number in JSON.
  • Performance — regex compiled per request: Infohash validation regex is now a package-level var instead of being recompiled on every download request.
  • Docker — data/ volume not mounted: docker-compose.yml now mounts ./data:/data so RSS history and post-processing state survive container restarts.
  • Docker — missing healthcheck: docker-compose.yml now uses /health endpoint 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!

Choose a tag to compare

@github-actions github-actions released this 09 Jul 09:07

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.json state in your data directory to prevent duplicates.
  • P2P Garbage Collector: Added optional Auto-Cleanup system (auto_cleanup in config.json). Drops active torrents from the daemon once they reach a target seed_ratio (e.g. 1.5) or max_seed_days to 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 /metrics endpoint.
  • OpenAPI Specification: Fully synchronized cmd/daemon/openapi.yaml with v1.5.x, including exact X-API-Key authentication mappings, the new source search parameters, and async webhook callback fields.


📦 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

Choose a tag to compare

@github-actions github-actions released this 09 Jul 08:42

Added

  • Source Targeting: The API and CLI now support filtering by a specific tracker (e.g. --source nyaa or ?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 .md skills for Claude, Hermes, and OpenClaw so that AI agents natively understand how to use the new --source targeting.


📦 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

Choose a tag to compare

@github-actions github-actions released this 08 Jul 08:28

Added

  • Bandwidth Throttling: Added max_download_rate and max_upload_rate (in KB/s) to config.json to prevent Gorrent from choking your local network.
  • WebSocket Endpoint: Added ws://localhost:7800/api/ws to stream live download status at 1Hz, paving the way for real-time Web UIs.
  • Prometheus Metrics & Healthcheck: Added /metrics exposing raw Prometheus format stats (gorrent_bytes_downloaded, etc.) and a /health endpoint for Docker auto-healing.
  • AI Agent Skills Updated: Fully updated the bundled .md skills for Claude, Hermes, and OpenClaw so that AI agents natively understand how to use the new --category flag, stop commands, X-API-Key headers, 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

Choose a tag to compare

@github-actions github-actions released this 08 Jul 08:02

Added

  • Auto-Export .torrent files: Gorrent can now optionally export a .torrent backup file into your downloads directory 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": true in the torrent section of your config.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 the daemon config 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 the torrent block of your config.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 --category flag (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