Sign inSign up

djmemo/transmission-trackers

By djmemo

•Updated 7 months ago

Image
0

1.2K

djmemo/transmission-trackers repository overview

⁠transmission-trackers

CodeFactor

This minimal-config docker image will run alongside your transmission installation, check for active non-private torrents, and update their trackers (add additional trackers) using a user-defined tracker-list such as the ones provided by @ngosang⁠ at https://github.com/ngosang/trackerslist⁠ or @corralpeltzer⁠'s newTrackOn Lists⁠

The tracker list will only be downloaded every 8 hours by default, but this frequency can be modified by environment variables.

Torrents are checked every 2 minutes (this can also be customized by environment variables)

If a torrent already has the additional trackers present, no changes will be made. This app will also not make any tracker modifications to torrents flagged as private.

Please note this is a v1 project. While it's been tested on my own setup, there may be issues and configurations that have not been fully tested. Report issues in Issues⁠

⁠transmission-trackers in action

⁠Running from docker command-line

Add additional environment variables as needed; see the table below for details.

⁠with (default) newtrackon stable list
docker run --rm --name transmission-trackers \
    -e TRANSMISSION_HOST=transmission \
    djmemo/transmission-trackers:latest
⁠with ngosang's best trackers list
docker run --rm --name transmission-trackers \
    -e TRANSMISSION_HOST=transmission \
    -e TRACKERS_LIST=https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_best_ip.txt \
    djmemo/transmission-trackers:latest

⁠Running from docker-compose

Create a docker-compose.yml file as below (and customize with environment entries from the table below if you need) and start with docker-compose up -d

services:
  transmission-trackers:
    container_name: transmission-trackers
    image: djmemo/transmission-trackers:latest
    environment:
      TRANSMISSION_HOST: 192.168.1.225  # ip or name of your transmission instance
      TRANSMISSION_PORT: 9092           # no need for this setting if transmission is running on the default port 
      TRACKERS_LIST: https://newtrackon.com/api/98?min_age_days=5 # use any URL that returns a line-separated list of trackers
    restart: unless-stopped

⁠Environment Variables:

See the table of Environment variables you can add below to either docker-compose.yml or the docker run command.

You can set these as needed to override the defaults. If the defaults are acceptable, there is no need to add the variables.

VariableDescriptionDefault Value
TRANSMISSION_HOSTIP or hostname of transmission hosttransmission
TRANSMISSION_PORTPort of transmission host9091
TRACKERS_LISTURL for tracker listhttps://newtrackon.com/api/stable
TRANSMISSION_USERUsername for transmission. Ignore if no auth needed.transmission
TRANSMISSION_PASSPassword for transmission. Ignore if no auth needed.password
TORRENT_CHECK_PERIODHow frequent (in seconds) we'll check for active torrents120 (2 minutes)
TORRENT_IGNORE_PRIVATEAllow processing private torrents (bypass private torrent check)False
TRACKER_EXPIRATIONHow long downloaded tracker list will kept (in seconds) before downloading the latest28800 (8 hours)
DEBUGEnables more verbose output for tracker and torrent updatesFalse

⁠Advanced Environment Variables: Private Torrent Tracker Replacement

⚠️ WARNING: USE WITH CAUTION ⚠️

The following variables allow you to replace trackers on private torrents. This is an advanced feature with important implications:

⁠⚠️ EXPLICIT WARNING - READ BEFORE USE:

Modifying trackers on private torrents can have serious consequences:

  • Account Bans: Private torrent sites may ban your account if trackers are modified without authorization
  • Data Loss: Changed trackers may expose your torrent activity or cause data loss
  • Ratio Issues: Tracker changes may disrupt your upload/download ratio tracking on private sites
  • Legal Issues: Bypassing private tracker restrictions could violate terms of service
  • Loss of Access: You may permanently lose access to private torrent communities

This feature should ONLY be used if you fully understand and accept these risks. It is designed for specific use cases like replacing dead/zombie trackers with approved alternatives, NOT for general tracker modification.

⁠Configuration
VariableDescriptionDefault Value
OVERRIDE_PRIVATEREQUIRED: Set to true to enable private torrent tracker replacement. Must be explicitly set to activate this feature.false
ZOMBIE_TRACKERS_LISTE_MATCHURL returning a line-separated list of trackers to detect/remove from private torrents. Only trackers in this list will be replaced.null
ZOMBIE_TRACKERS_LISTE_REPLACEURL returning a line-separated list of replacement trackers to add when a match is found.null
⁠How It Works
  1. When a private torrent is detected AND OVERRIDE_PRIVATE=true:
  2. The app checks if any of the torrent's current trackers match the list from ZOMBIE_TRACKERS_LISTE_MATCH
  3. If a match is found, trackers matching the list are removed and trackers from ZOMBIE_TRACKERS_LISTE_REPLACE are added
  4. Other trackers on the torrent are preserved
⁠Example Use Case

Replace dead/zombie trackers on a private torrent:

services:
  transmission-trackers:
    container_name: transmission-trackers
    image: djmemo/transmission-trackers:latest
    environment:
      TRANSMISSION_HOST: 192.168.1.225
      OVERRIDE_PRIVATE: "true"
      ZOMBIE_TRACKERS_LISTE_MATCH: https://example.com/zombie_trackers.txt
      ZOMBIE_TRACKERS_LISTE_REPLACE: https://example.com/replacement_trackers.txt
    restart: unless-stopped
⁠⚠️ REMINDER
  • Leave OVERRIDE_PRIVATE as false (default) unless you have a specific, legitimate reason to enable it
  • Always verify the replacement tracker lists are approved by the private tracker site
  • Test with a non-critical torrent first
  • The authors assume NO responsibility for bans, data loss, or other consequences from using this feature

⁠Which List Should I Use?

You can use any URL that returns a line-separated list of trackers, so find your favorite list and use that one. I have not added support to combine lists, nor currently will this remove trackers that fall off the lists as they're updated, but if there's demand for that, it could be added.

In the case of the newtrackon list, you can use the API as you see fit:

  • https://newtrackon.com/api/stable - stable list
  • https://newtrackon.com/api/98?min_age_days=5 - list with 98%+ uptime, and 5+ tracker age in days

Tag summary

Content type

Image

Digest

sha256:de2b5ade9…

Size

23.2 MB

Last updated

7 months ago

docker pull djmemo/transmission-trackers