You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
e3e111b docs: update readme (Cameron Garnham)
Pull request description:
Updated and modernized the readme. Now include some basic guide for getting started.
ACKs for top commit:
da2ce7:
ACK e3e111b
Tree-SHA512: 039b74b02a68e7a14ee155e99ece3fa5f59d8a87f0702db16f0a5f5fb3b543de69e376210bc6591878d8defd453a4a9e85d3c3f301905ef314218f8c1c69f4b2
Torrust Tracker is a lightweight but incredibly high-performance and feature-rich BitTorrent tracker written in [Rust Language][rust].
5
+
__Torrust Tracker__, is a [BitTorrent][bittorrent] Tracker (a service that matchmakes peers and collects statistics) written in [Rust Language][rust] and [axum] (a modern web application framework). ___This tracker aims to be respectful to established standards, (both [formal][BEP 00] and [otherwise][torrent_source_felid]).___
6
6
7
-
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.
7
+
> This is a [Torrust][torrust] project and is in active development. It is community supported as well as sponsored by [Nautilus Cyberneering][nautilus].
8
8
9
-
_We have a [container guide][containers.md] to get started with Docker or Podman_
9
+
-_We have a [container guide][containers.md]for those who wish to get started with __Docker__ or __Podman___
10
10
11
11
## Key Features
12
12
13
-
*[x]Multiple UDP server and HTTP(S) server blocks for socket binding are possible.
14
-
*[x]Full IPv4 and IPv6 support for both UDP and HTTP(S).
15
-
*[x]Private & Whitelisted mode.
16
-
*[x]Built-in API.
17
-
*[x]Torrent whitelisting.
18
-
*[x]Peer authentication using time-bound keys.
19
-
*[x][newTrackon][newtrackon] check is supported for both HTTP and UDP, where IPv4 and IPv6 are properly handled.
20
-
*[x]SQLite3 and MySQL persistence, loading and saving of the torrent hashes and downloads completed count.
21
-
*[x]Comprehensive documentation.
22
-
*[x]A complete suite of tests. See our [code coverage report][coverage].
13
+
-[x]High Quality and Modern Rust Codebase.
14
+
-[x][Documentation] Generated from Code Comments.
15
+
-[x][Comprehensive Suit][coverage] of Unit and Functional Tests.
> _[Learn more about BitTorrent Enhancement Proposals][BEP 00]_
25
26
26
-
*[BEP 03]: The BitTorrent Protocol.
27
-
*[BEP 07]: IPv6 Support.
28
-
*[BEP 15]: UDP Tracker Protocol for BitTorrent.
29
-
*[BEP 23]: Tracker Returns Compact Peer Lists.
30
-
*[BEP 27]: Private Torrents.
31
-
*[BEP 48]: Tracker Protocol Extension: Scrape.
27
+
-[BEP 03]: The BitTorrent Protocol.
28
+
-[BEP 07]: IPv6 Support.
29
+
-[BEP 15]: UDP Tracker Protocol for BitTorrent.
30
+
-[BEP 23]: Tracker Returns Compact Peer Lists.
31
+
-[BEP 27]: Private Torrents.
32
+
-[BEP 48]: Tracker Protocol Extension: Scrape.
32
33
33
34
34
35
## Getting Started
35
36
36
-
Requirements:
37
+
### Container Version
37
38
38
-
* Rust Stable `1.68`
39
-
* 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.
39
+
The Torrust Tracker is [deployed to DockerHub][dockerhub_torrust_tracker], you can run a demo immediately with the following commands:
40
40
41
-
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:
- Also contains the container defaults: [`sqlite3`][tracker.container.sqlite3.toml] and [`mysql`][tracker.container.mysql.toml].
84
+
# Customize the tracker configuration (for example):
85
+
vim ./storage/tracker/etc/tracker.toml
58
86
59
-
To override the default configuration there is two options:
87
+
# Run the tracker with the updated configuration:
88
+
TORRUST_TRACKER_PATH_CONFIG="./storage/tracker/etc/tracker.toml" cargo run
89
+
```
60
90
61
-
- Configure a different configuration path by setting the [`TORRUST_TRACKER_PATH_CONFIG`][src.bootstrap.config.path.config]environmental variable.
91
+
_Optionally, you may choose to supply the entire configuration as an environmental variable:_
62
92
63
-
- Supply the entire configuration via the [`TORRUST_TRACKER_CONFIG`][src.bootstrap.config.config] environmental variable.
93
+
```sh
94
+
# Use a configuration supplied on an environmental variable:
95
+
TORRUST_TRACKER_CONFIG=$(cat "./storage/tracker/etc/tracker.toml") cargo run
96
+
```
64
97
98
+
_For deployment you __should__ override the `api_admin_token` by using an environmental variable:_
65
99
66
-
> NOTE: It is recommended for production you override the `api admin token` by placing your secret in the [`ENV_VAR_API_ADMIN_TOKEN`][src.bootstrap.config.admin.token] environmental variable.
100
+
```sh
101
+
# Generate a Secret Token:
102
+
gpg --armor --gen-random 1 10 | tee ./storage/tracker/lib/tracker_api_admin_token.secret
[good first issues]: https://github.com/torrust/torrust-tracker/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22
0 commit comments