安装Torrust种子网站

介绍

Torrust是一个开源项目,它为您提供了托管自己的(私人)BitTorrent跟踪器和在线洪流索引所需的所有工具。

项目结构

Torrust 分为两个独立的应用程序

  • Torrust Tracker:一款高性能且功能丰富的(私有)BitTorrent跟踪器。
  • Torrust Index:一个依赖于Torrust跟踪器的种子索引网站。

    特征

  • 列表项自托管高性能 BitTorrent 跟踪器。
  • 列表项支持公共,私人和白名单跟踪器模式。
  • 列表项用于将种子列入白名单和发布跟踪器密钥的 API。
  • 列表项电子邮件/密码身份验证(可选电子邮件验证)。
  • 列表项种子上传/下载(包括磁力链接)。
  • 列表项洪流审核。
  • 列表项可定制的洪流类别。
  • 列表项无需外部服务。
  • 列表项完全用 Rust 编写!

安装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. 克隆源码
1
2
3
mkdir /opt/torrust
cd /opt/torrust
git clone https://github.com/torrust/torrust-tracker.git
  1. 编译源码
1
2
cd torrust-tracker
cargo build --release

如果有错,请运行 rustup update stable 再编译

  1. 运行一次生成 config.toml 文件
1
./target/release/torrust-tracker 
  1. 编辑配置文件config.toml (查看: 配置文档)
1
nano 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"
  1. 打开 bind_address端口 (default: 6969):

如果要配置NGINX请跳过此步骤。

1
sudo ufw allow 6969 

(可选) 你的 SSL 证书

如果要配置NGINX请跳过此步骤。

  1. 编辑 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 进行操作。

  1. 更改以下设置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
...
  1. 为跟踪器创建一个 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;
}
}
  1. 通过创建指向sites-enabled 目录中配置的符号链接来启用配置

将 tracker.torrust.com 替换为您的域/NGINX 配置。

1
ln -s /etc/nginx/sites-available/tracker.torrust.com /etc/nginx/sites-enabled/ 
  1. 在此之后,您可以通过nginx -t执行来测试配置的有效性,如果配置有效,您可以安全地重新加载Nginx以使新配置处于活动状态:
1
sudo systemctl reload nginx 

用法

  1. 在文件夹中,您可以像这样运行torrust跟踪器
1
./target/release/torrust-tracker 

与 Tmux 的用法

  1. 打开新的 Tmux 会话
1
tmux new -s torrust-tracker 
  1. Tmux 会话中,运行 torrust 跟踪器
1
2
cd /opt/torrust/torrust-tracker
./target/release/torrust-tracker
  1. Tmux 会话中分离
1
2
CTRL+B
D

安装Torrust

安装必备组件

前端不能单独运行,需要外部Web服务器,如ApacheNGINX。在本指南中,我们将使用Nginx

  • Node (version >= 12.0.0)
    • Debian/Ubuntu:
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 安装教程

安装后端

  1. 创建 torrust 安装目录(如果尚未创建)并克隆存储库
1
2
3
mkdir /opt/torrust
cd /opt/torrust
git clone https://github.com/torrust/torrust.git
  1. 切换到后端目录并创建一个名.env为:
1
2
cd torrust/backend
echo "DATABASE_URL=sqlite://data.db?mode=rwc" > .env
  1. 然后,我们必须创建 SQLite 数据库并运行迁移。安装sqlx-cli并创建数据库
1
2
cargo install sqlx-cli
sqlx db setup
  1. 现在构建后端
1
cargo build --release 
  1. 运行后端一次以生成 config.toml 文件:
1
2
cd /opt/torrust/torrust/backend
./target/release/torrust
  1. 然后编辑config.toml并更改至少以下键:
1
nano 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. 使用以下命令运行后端
1
2
cd /opt/torrust/torrust/backend
./target/release/torrust

使用 Tmux 运行后端

  1. 使用 Tmux 运行后端
1
2
3
tmux new -s torrust-index
cd /opt/torrust/torrust/backend
./target/release/torrust

按下CTRL+B D以退出 tmux 会话而不终止它。

安装前端

  1. 首先创建一个名为.env的文件

请务必更改域名。

1
2
cd /opt/torrust/torrust/frontend
echo "VITE_API_BASE_URL=https://YOUR_DOMAIN/api" > .env
  1. 构建前端
1
2
npm i
npm run build

成功完成此命令后, dist 该文件夹中将包含前端的构建版本。这些文件将由Nginx在后续步骤中提供。

NGINX 配置

  1. 创建一个包含以下内容/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/;
}
}
  1. 通过在sites-enabled目录中创建指向配置的符号链接来启用配置
1
ln -s /etc/nginx/sites-available/torrust.conf /etc/nginx/sites-enabled/ 
  1. 在此之后,您可以通过nginx -t执行来测试配置的有效性,如果配置有效,您可以安全地重新加载Nginx以使新配置处于活动状态
1
sudo systemctl reload nginx