Skip to content

A modern and feature-rich (private) BitTorrent tracker.

License

Notifications You must be signed in to change notification settings

rpdl-net/torrust-tracker

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Torrust Tracker

Test

Project Description

Torrust Tracker is a lightweight but incredibly powerful and feature-rich BitTorrent tracker made using Rust.

Features

  • Multiple UDP server and HTTP(S) server blocks for socket binding possible
  • Full IPv4 and IPv6 support for both UDP and HTTP(S)
  • Private & Whitelisted mode
  • Built-in API
  • Torrent whitelisting
  • Peer authentication using time-bound keys
  • newTrackon check supported for both HTTP, UDP, where IPv4 and IPv6 is properly handled
  • SQLite3 Persistent loading and saving of the torrent hashes and completed count
  • MySQL support added as engine option
  • Periodically saving added, interval can be configured

Implemented BEPs

  • BEP 3: The BitTorrent Protocol
  • BEP 7: IPv6 Support
  • BEP 15: UDP Tracker Protocol for BitTorrent
  • BEP 23: Tracker Returns Compact Peer Lists
  • BEP 27: Private Torrents
  • BEP 41: UDP Tracker Protocol Extensions
  • BEP 48: Tracker Protocol Extension: Scrape

Getting Started

You can get the latest binaries from releases or follow the install from scratch instructions below.

Install From Scratch

  1. Clone the repo.
git clone https://github.com/torrust/torrust-tracker.git
cd torrust-tracker
  1. Build the source code.
cargo build --release

Usage

  • Run the torrust-tracker once to create the config.toml file:
./target/release/torrust-tracker
log_level = "info"
mode = "public"
db_driver = "Sqlite3"
db_path = "data.db"
announce_interval = 120
min_announce_interval = 120
max_peer_timeout = 900
on_reverse_proxy = false
external_ip = "0.0.0.0"
tracker_usage_statistics = true
persistent_torrent_completed_stat = false
inactive_peer_cleanup_interval = 600
remove_peerless_torrents = true

[[udp_trackers]]
enabled = false
bind_address = "0.0.0.0:6969"

[[http_trackers]]
enabled = true
bind_address = "0.0.0.0:6969"
ssl_enabled = false
ssl_cert_path = ""
ssl_key_path = ""

[http_api]
enabled = true
bind_address = "127.0.0.1:1212"

[http_api.access_tokens]
admin = "MyAccessToken"
  • Run the torrust-tracker again:
./target/release/torrust-tracker

Tracker URL

Your tracker announce URL will be udp://{tracker-ip:port} and/or http://{tracker-ip:port}/announce and/or https://{tracker-ip:port}/announce depending on your bindings. In private & private_listed mode, tracker keys are added after the tracker URL like: https://{tracker-ip:port}/announce/{key}.

Built-in API

Read the API documentation here.

Credits

This project was a joint effort by Nautilus Cyberneering GmbH and Dutch Bits. Also thanks to Naim A. and greatest-ape for some parts of the code. Further added features and functions thanks to Power2All.

About

A modern and feature-rich (private) BitTorrent tracker.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 100.0%