![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.
UDP
, HTTP
, and TLS
Sockets.IPv4
and IPv6
support.SQLite3
or MySQL
Databases.The Torrust Tracker is deployed to DockerHub, you can run a demo immediately with the following commands:
sh
docker run -it torrust/tracker:develop
Please read our container guide for more information.
sh
podman run -it torrust/tracker:develop
Please read our container guide for more information.
```sh
git clone https://github.com/torrust/torrust-tracker.git
cd torrust-tracker mkdir -p ./storage/tracker/lib/database/ touch ./storage/tracker/lib/database/sqlite3.db
cargo test --tests --benches --examples --workspace --all-targets --all-features
cargo run ```
```sh
mkdir -p ./storage/tracker/etc/ cp ./share/default/config/tracker.development.sqlite3.toml ./storage/tracker/etc/tracker.toml
vim ./storage/tracker/etc/tracker.toml
TORRUSTTRACKERPATH_CONFIG="./storage/tracker/etc/tracker.toml" cargo run ```
Optionally, you may choose to supply the entire configuration as an environmental variable:
```sh
TORRUSTTRACKERCONFIG=$(cat "./storage/tracker/etc/tracker.toml") cargo run ```
For deployment you should override the api_admin_token
by using an environmental variable:
```sh
gpg --armor --gen-random 1 10 | tee ./storage/tracker/lib/trackerapiadmintoken.secret chmod go-rwx ./storage/tracker/lib/trackerapiadmintoken.secret
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.
The following services are provided by the default configuration:
udp://127.0.0.1:6969/announce
.http://127.0.0.1:6969/announce
.http://127.0.0.1:1212/api/v1/stats?token=MyAccessToken
.This is an open-source community supported project. We welcome contributions from the community!
How can you contribute?
The project is licensed under a dual license. See [COPYRIGHT].
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].