介绍
Torrust是一个开源项目,它为您提供了托管自己的(私人)BitTorrent跟踪器和在线洪流索引所需的所有工具。
项目结构
Torrust 分为两个独立的应用程序
安装Torrust Tracker
安装依赖
- OpenSSL:
- Arch Linux:
sudo pacman -S pkg-config openssl
- Debian/Ubuntu:
sudo apt-get install pkg-config libssl-dev
- SQLite3:
- Debian/Ubuntu:
sudo apt-get install libsqlite3-dev
- 克隆源码
1 2 3
| mkdir /opt/torrust cd /opt/torrust git clone https://github.com/torrust/torrust-tracker.git
|
- 编译源码
1 2
| cd torrust-tracker cargo build --release
|
如果有错,请运行 rustup update stable
再编译
- 运行一次生成
config.toml
文件
1
| ./target/release/torrust-tracker
|
- 编辑配置文件
config.toml
(查看: 配置文档)
模板 config.toml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
| log_level = "info" mode = "private" db_driver = "Sqlite3" db_path = "data.db" announce_interval = 120 min_announce_interval = 120 max_peer_timeout = 900 on_reverse_proxy = false external_ip = "0.0.0.0" tracker_usage_statistics = true persistent_torrent_completed_stat = false inactive_peer_cleanup_interval = 600 remove_peerless_torrents = true
[[udp_trackers]] enabled = false bind_address = "0.0.0.0:6969"
[[http_trackers]] enabled = true bind_address = "0.0.0.0:6969" ssl_enabled = false ssl_cert_path = "" ssl_key_path = ""
[http_api] enabled = true bind_address = "127.0.0.1:1212"
[http_api.access_tokens] admin = "MyAccessToken"
|
- 打开
bind_address
端口 (default: 6969):
如果要配置NGINX请跳过此步骤。
(可选) 你的 SSL 证书
如果要配置NGINX请跳过此步骤。
- 编辑
nano.config
文件并更改以下设置
1 2 3 4 5 6 7
| ... [[http_trackers]] ... ssl_enabled = true ssl_cert_path = "YOUR_CERT_PATH" ssl_key_path = "YOUR_CERT_KEY_PATH" ...
|
安装 NGINX
按照上述安装步骤 1-4 进行操作。
- 更改以下设置
config.toml
1 2 3 4 5 6 7
| ... on_reverse_proxy = true ... [[http_trackers]] bind_address = "127.0.0.1:6969" ssl_enabled = false ...
|
- 为跟踪器创建一个 NGINX 配置(例如:tracker.torrust.com)
请务必改用您自己的域名。
1
| sudo nano /etc/nginx/sites-available/tracker.torrust.com
|
请勿复制 SSL 注释,并确保将域名更改为您的域名。
1 2 3 4 5 6 7 8 9 10 11
| # without SSL
server { listen 80; server_name tracker.torrust.com;
location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:6969; } }
|
确保更改ssl_certificate
路径。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| # with SSL
server { listen 80; server_name tracker.torrust.com;
return 301 https://$host$request_uri; }
server { listen 443; server_name tracker.torrust.com;
ssl_certificate CERT_PATH ssl_certificate_key CERT_KEY_PATH;
location / { proxy_set_header X-Forwarded-For $remote_addr; proxy_pass http://127.0.0.1:6969; } }
|
- 通过创建指向
sites-enabled
目录中配置的符号链接来启用配置
将 tracker.torrust.com 替换为您的域/NGINX 配置。
1
| ln -s /etc/nginx/sites-available/tracker.torrust.com /etc/nginx/sites-enabled/
|
- 在此之后,您可以通过
nginx -t
执行来测试配置的有效性,如果配置有效,您可以安全地重新加载Nginx以使新配置处于活动状态:
1
| sudo systemctl reload nginx
|
用法
- 在文件夹中,您可以像这样运行torrust跟踪器
1
| ./target/release/torrust-tracker
|
与 Tmux 的用法
- 打开新的
Tmux
会话
1
| tmux new -s torrust-tracker
|
- 在
Tmux
会话中,运行 torrust
跟踪器
1 2
| cd /opt/torrust/torrust-tracker ./target/release/torrust-tracker
|
- 从
Tmux
会话中分离
安装Torrust
安装必备组件
前端不能单独运行,需要外部Web服务器,如Apache或NGINX。在本指南中,我们将使用Nginx。
1 2
| curl -fsSL https://deb.nodesource.com/setup_12.x | bash - apt-get install -y nodejs
|
- NPM
- Debian/Ubuntu:
sudo apt-get install npm
- NGINX:
- Debian/Ubuntu:
sudo apt install nginx
- 有关其他发行版:请参阅 Nginx 安装教程
安装后端
- 创建 torrust 安装目录(如果尚未创建)并克隆存储库
1 2 3
| mkdir /opt/torrust cd /opt/torrust git clone https://github.com/torrust/torrust.git
|
- 切换到后端目录并创建一个名
.env
为:
1 2
| cd torrust/backend echo "DATABASE_URL=sqlite://data.db?mode=rwc" > .env
|
- 然后,我们必须创建 SQLite 数据库并运行迁移。安装
sqlx-cli
并创建数据库
1 2
| cargo install sqlx-cli sqlx db setup
|
- 现在构建后端
- 运行后端一次以生成
config.toml
文件:
1 2
| cd /opt/torrust/torrust/backend ./target/release/torrust
|
- 然后编辑
config.toml
并更改至少以下键:
[tracker]
url
: 设置为跟踪器的连接字符串。例如: udp://TRACKER_IP:6969
.
api_url
: 设置为跟踪器 API URL
。默认:http://localhost:1212
.
token
: 将其设置为 Torrust Tracker
config.toml
中的访问令牌。
[net]
port
: 默认设置为 3000
。如果您选择其他端口,请确保也更改Nginx配置。
[auth]
secret_key
: 设置为安全随机生成的字符串。
运行后端
- 使用以下命令运行后端
1 2
| cd /opt/torrust/torrust/backend ./target/release/torrust
|
使用 Tmux
运行后端
- 使用
Tmux
运行后端
1 2 3
| tmux new -s torrust-index cd /opt/torrust/torrust/backend ./target/release/torrust
|
按下CTRL+B D
以退出 tmux 会话而不终止它。
安装前端
- 首先创建一个名为
.env
的文件
请务必更改域名。
1 2
| cd /opt/torrust/torrust/frontend echo "VITE_API_BASE_URL=https://YOUR_DOMAIN/api" > .env
|
- 构建前端
成功完成此命令后, dist
该文件夹中将包含前端的构建版本。这些文件将由Nginx
在后续步骤中提供。
NGINX 配置
- 创建一个包含以下内容
/etc/nginx/sites-available/torrust.conf
文件
需要更改 YOUR_DOMAIN x2, CERT_PATH 和 CERT_KEY_PATH.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| server { listen 80; server_name YOUR_DOMAIN;
return 301 https://$host$request_uri; }
server { listen 443 ssl; server_name YOUR_DOMAIN;
ssl_certificate CERT_PATH; ssl_certificate_key CERT_KEY_PATH;
root /opt/torrust/torrust/frontend/dist/; location / { try_files $uri $uri/ /index.html; }
location /api/ { proxy_pass http://127.0.0.1:3000/; } }
|
- 通过在
sites-enabled
目录中创建指向配置的符号链接来启用配置
1
| ln -s /etc/nginx/sites-available/torrust.conf /etc/nginx/sites-enabled/
|
- 在此之后,您可以通过
nginx -t
执行来测试配置的有效性,如果配置有效,您可以安全地重新加载Nginx
以使新配置处于活动状态
1
| sudo systemctl reload nginx
|