Skip to content

da2ce7/torrust-tracker

 
 

Torrust Tracker

container_wf_b coverage_wf_b testing_wf_b

Torrust Tracker is a lightweight but incredibly high-performance and feature-rich BitTorrent tracker written in Rust Language.

It aims to provide a reliable and efficient solution for serving torrents to a vast number of peers while maintaining a high level of performance, robustness, extensibility, security, usability and with community-driven development.

We have a container guide to get started with Docker or Podman

Key Features

  • Multiple UDP server and HTTP(S) server blocks for socket binding are 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 is supported for both HTTP and UDP, where IPv4 and IPv6 are properly handled.
  • SQLite3 and MySQL persistence, loading and saving of the torrent hashes and downloads completed count.
  • Comprehensive documentation.
  • A complete suite of tests. See our code coverage report.

Implemented BEPs

  • BEP 03: The BitTorrent Protocol.
  • BEP 07: IPv6 Support.
  • BEP 15: UDP Tracker Protocol for BitTorrent.
  • BEP 23: Tracker Returns Compact Peer Lists.
  • BEP 27: Private Torrents.
  • BEP 48: Tracker Protocol Extension: Scrape.

Getting Started

Requirements:

  • Rust Stable 1.68
  • You might have problems compiling with a machine or docker container with low resources. It has been tested with docker containers with 6 CPUs, 7.5 GM of memory and 2GB of swap.

You can follow the documentation to install and use Torrust Tracker in different ways, but if you want to give it a quick try, you can use the following commands:

git clone https://github.com/torrust/torrust-tracker.git \
  && cd torrust-tracker \
  && cargo build --release \
  && mkdir -p ./storage/tracker/lib/database \
  && mkdir -p ./storage/tracker/lib/tls

Configuration

The default configuration folder: /share/default/config:

To override the default configuration there is two options:

NOTE: It is recommended for production you override the api admin token by placing your secret in the ENV_VAR_API_ADMIN_TOKEN environmental variable.

Services

After running the tracker these services will be available (as defined in the default configuration):

  • UDP tracker: udp://127.0.0.1:6969/announce.
  • HTTP tracker: http://127.0.0.1:6969/announce.
  • API: http://127.0.0.1:1212/api/v1/stats?token=MyAccessToken.

Documentation

Contributing

We welcome contributions from the community!

How can you contribute?

  • Bug reports and feature requests.
  • Code contributions. You can start by looking at the issues labeled "good first issues".
  • Documentation improvements. Check the documentation and API documentation for typos, errors, or missing information.
  • Participation in the community. You can help by answering questions in the discussions.

License

The project is licensed under a dual license. See COPYRIGHT.

Acknowledgments

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

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages

  • Rust 99.3%
  • Other 0.7%