Torrust Tracker

![containerwfb] ![coveragewfb] ![deploymentwfb] ![testingwfb]

Torrust Tracker, is a BitTorrent Tracker (a service that matchmakes peers and collects statistics) written in Rust Language and [axum] (a modern web application framework). This tracker aims to be respectful to established standards, (both formal and otherwise).

This is a Torrust project and is in active development. It is community supported as well as sponsored by Nautilus Cyberneering.

Key Features

Implemented BitTorrent Enhancement Proposals (BEPs)

Learn more about BitTorrent Enhancement Proposals

Getting Started

Container Version

The Torrust Tracker is deployed to DockerHub, you can run a demo immediately with the following commands:

Docker:

sh docker run -it torrust/tracker:develop

Please read our container guide for more information.

Podman:

sh podman run -it torrust/tracker:develop

Please read our container guide for more information.

Development Version

Checkout, Test and Run:

```sh

Checkout repository into a new folder:

git clone https://github.com/torrust/torrust-tracker.git

Change into directory and create a empty database file:

cd torrust-tracker mkdir -p ./storage/tracker/lib/database/ touch ./storage/tracker/lib/database/sqlite3.db

Check all tests in application:

cargo test --tests --benches --examples --workspace --all-targets --all-features

Run the tracker:

cargo run ```

Customization:

```sh

Copy the default configuration into the standard location:

mkdir -p ./storage/tracker/etc/ cp ./share/default/config/tracker.development.sqlite3.toml ./storage/tracker/etc/tracker.toml

Customize the tracker configuration (for example):

vim ./storage/tracker/etc/tracker.toml

Run the tracker with the updated configuration:

TORRUSTTRACKERPATH_CONFIG="./storage/tracker/etc/tracker.toml" cargo run ```

Optionally, you may choose to supply the entire configuration as an environmental variable:

```sh

Use a configuration supplied on an environmental variable:

TORRUSTTRACKERCONFIG=$(cat "./storage/tracker/etc/tracker.toml") cargo run ```

For deployment you should override the api_admin_token by using an environmental variable:

```sh

Generate a Secret Token:

gpg --armor --gen-random 1 10 | tee ./storage/tracker/lib/trackerapiadmintoken.secret chmod go-rwx ./storage/tracker/lib/trackerapiadmintoken.secret

Override secret in configuration using an environmental variable:

TORRUSTTRACKERCONFIG=$(cat "./storage/tracker/etc/tracker.toml") \ TORRUSTTRACKERAPIADMINTOKEN=$(cat "./storage/tracker/lib/trackerapiadmin_token.secret") \ cargo run ```

Please view our crate documentation for more detailed instructions.

Services

The following services are provided by the default configuration:

Documentation

Contributing

This is an open-source community supported project.
We welcome contributions from the community!

How can you contribute?

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].