Dan0xE / torrust-tracker

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

Home Page:https://torrust.com

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Torrust Tracker

Build & Release CI Publish crate Publish docker image Test Test docker build Upload code coverage

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

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.

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 code coverage report.

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 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/database \
  && mkdir -p ./storage/ssl_certificates

And then run cargo run twice. The first time to generate the config.toml file and the second time to run the tracker with the default configuration.

After running the tracker these services will be available:

  • 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 the terms of the GNU AFFERO GENERAL PUBLIC LICENSE.

There is an ongoing discussion about the license of the project. You can follow the discussion here.

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.

https://torrust.com

License:GNU Affero General Public License v3.0


Languages

Language:Rust 99.4%Language:Dockerfile 0.3%Language:Lua 0.2%Language:Shell 0.2%