254 lines
7.7 KiB
Markdown
254 lines
7.7 KiB
Markdown
### Шаг 1. Подготовка системы и создание пользователя
|
|
|
|
1. Обновите систему:
|
|
```bash
|
|
apt update && apt upgrade -y
|
|
```
|
|
|
|
2. Установите необходимые пакеты:
|
|
```bash
|
|
apt install rtorrent tmux curl build-essential ufw -y
|
|
```
|
|
|
|
3. Создайте пользователя `torrent` (без пароля, так как будем управлять им через systemd):
|
|
```bash
|
|
adduser --disabled-password --gecos "" torrent
|
|
```
|
|
|
|
### Шаг 2. Настройка rTorrent
|
|
|
|
Перейдем под созданного пользователя и создадим нужные папки и конфигурацию.
|
|
|
|
1. Переключитесь на пользователя `torrent`:
|
|
```bash
|
|
su - torrent
|
|
```
|
|
|
|
2. Создайте структуру директорий для загрузок и сессий:
|
|
```bash
|
|
mkdir -p ~/rtorrent/{downloads,session,watch,add}
|
|
```
|
|
|
|
3. Создайте конфигурационный файл `~/.rtorrent.rc`:
|
|
```bash
|
|
nano ~/.rtorrent.rc
|
|
```
|
|
|
|
4. Вставьте в него следующую базовую конфигурацию:
|
|
```text
|
|
# Директории
|
|
directory.default.set = /home/torrent/rtorrent/downloads
|
|
session.path.set = /home/torrent/rtorrent/session
|
|
schedule = watch_directory,5,5,"load.normal=/home/torrent/rtorrent/add/*.torrent"
|
|
|
|
# Порты для входящих соединений (для самих торрентов)
|
|
network.port_range.set = 50000-50000
|
|
network.port_random.set = no
|
|
|
|
# Настройка SCGI сокета для связи с Flood
|
|
network.scgi.open_local = /home/torrent/rtorrent/rpc.socket
|
|
execute.nothrow = chmod,770,/home/torrent/rtorrent/rpc.socket
|
|
|
|
# Шифрование
|
|
protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
|
|
|
|
# Трекеры и DHT
|
|
dht.mode.set = auto
|
|
dht.port.set = 6881
|
|
protocol.pex.set = yes
|
|
trackers.use_udp.set = yes
|
|
```
|
|
*Сохраните файл (`Ctrl+O`, `Enter`) и закройте редактор (`Ctrl+X`).*
|
|
|
|
5. Выйдите из пользователя `torrent` обратно в `root`:
|
|
```bash
|
|
exit
|
|
```
|
|
|
|
### Шаг 3. Установка Node.js и Flood
|
|
|
|
Flood — это веб-приложение на Node.js. Установим актуальную версию Node.js.
|
|
|
|
1. Добавьте репозиторий Node.js (например, 20-ю LTS версию):
|
|
```bash
|
|
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
|
|
```
|
|
|
|
2. Установите Node.js:
|
|
```bash
|
|
apt-get install -y nodejs
|
|
```
|
|
|
|
3. Установите Flood глобально через пакетный менеджер `npm`:
|
|
```bash
|
|
npm install -g flood
|
|
```
|
|
|
|
### Шаг 3. Установка File Browser
|
|
|
|
1. Установка:
|
|
```bash
|
|
curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash
|
|
```
|
|
|
|
2. Запуск для получения пароля:
|
|
```bash
|
|
filebrowser \
|
|
-r /mnt/data \
|
|
--address 0.0.0.0 \
|
|
--port 8070 \
|
|
--database /root/filebrowser.db
|
|
```
|
|
|
|
*Выключите скрипт (`Ctrl+C`).*
|
|
|
|
**НЕ ЗАБУДЬТЕ ЗАПИСАТЬ ВЫДАННЫЙ ПАРОЛЬ!**
|
|
|
|
### Шаг 4. Назначение необходимых прав на папки
|
|
|
|
1. Установка ACL:
|
|
```bash
|
|
sudo apt install acl
|
|
```
|
|
2. Назначение общих прав на папки для нормальной работы File Browser
|
|
```bash
|
|
sudo setfacl -R -m u:torrent:rwx /home/torrent
|
|
sudo setfacl -R -d -m u:torrent:rwx /home/torrent
|
|
```
|
|
|
|
### Шаг 5. Создание сервисов (systemd)
|
|
|
|
Чтобы rTorrent и Flood работали в фоне и автоматически запускались при перезагрузке сервера, создадим для них systemd-сервисы.
|
|
|
|
#### 1. Сервис для rTorrent
|
|
Создайте файл:
|
|
```bash
|
|
nano /etc/systemd/system/rtorrent.service
|
|
```
|
|
Вставьте код:
|
|
```ini
|
|
[Unit]
|
|
Description=rTorrent
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=forking
|
|
User=torrent
|
|
Group=torrent
|
|
# Запускаем rTorrent внутри tmux, чтобы при желании можно было подключиться к консоли
|
|
ExecStart=/usr/bin/tmux new-session -s rtorrent -n rtorrent -d rtorrent
|
|
ExecStop=/usr/bin/tmux send-keys -t rtorrent C-q
|
|
WorkingDirectory=/home/torrent
|
|
Restart=always
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
#### 2. Сервис для Flood
|
|
Создайте файл:
|
|
```bash
|
|
nano /etc/systemd/system/flood.service
|
|
```
|
|
Вставьте код (здесь мы указываем порт **8099**):
|
|
```ini
|
|
[Unit]
|
|
Description=Flood Web UI
|
|
After=rtorrent.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=torrent
|
|
Group=torrent
|
|
ExecStart=/usr/bin/flood --port 8099 --host 0.0.0.0
|
|
WorkingDirectory=/home/torrent
|
|
Restart=always
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
#### 2. Сервис для File Browser
|
|
Создайте файл:
|
|
```bash
|
|
sudo nano /etc/systemd/system/filebrowser.service
|
|
```
|
|
Вставьте код (здесь мы указываем порт **8099**):
|
|
```ini
|
|
[Unit]
|
|
Description=File Browser
|
|
After=network.target
|
|
|
|
[Service]
|
|
Type=simple
|
|
User=root
|
|
Group=root
|
|
|
|
ExecStart=/usr/local/bin/filebrowser \
|
|
-r /home/torrent \
|
|
--address 0.0.0.0 \
|
|
--port 8070 \
|
|
--database /root/filebrowser.db
|
|
Restart=always
|
|
RestartSec=5
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
```
|
|
|
|
### Шаг 6. Запуск сервисов и настройка фаервола
|
|
|
|
1. Перезагрузите конфигурацию systemd:
|
|
```bash
|
|
systemctl daemon-reload
|
|
```
|
|
|
|
2. Добавьте сервисы в автозагрузку и запустите их:
|
|
```bash
|
|
systemctl enable --now rtorrent
|
|
systemctl enable --now flood
|
|
systemctl enable --now filebrowser
|
|
```
|
|
|
|
3. Проверьте статус (оба должны быть *active (running)*):
|
|
```bash
|
|
systemctl status rtorrent
|
|
systemctl status flood
|
|
systemctl status filebrowser
|
|
```
|
|
|
|
4. Откройте необходимые порты в фаерволе (если вы используете UFW):
|
|
```bash
|
|
ufw allow 8099/tcp # Порт для веб-интерфейса Flood
|
|
ufw allow 50000/tcp # Порт для входящих торрентов
|
|
ufw allow 6881/udp # Порт для DHT
|
|
ufw allow 8070/tcp # Порт для File Browser
|
|
```
|
|
|
|
### Шаг 7. Первоначальная настройка в браузере
|
|
|
|
1. Откройте браузер и перейдите по адресу вашего сервера:
|
|
`http://IP_ВАШЕГО_VPS:8099`
|
|
|
|
2. Перед вами появится окно первоначальной настройки Flood:
|
|
* **Username / Password**: Придумайте логин и пароль для входа в веб-интерфейс.
|
|
* **Client**: Выберите `rTorrent`.
|
|
* **Connection type**: Выберите **Socket** (Сокет).
|
|
* **Socket path**: Введите путь, который мы указывали в конфиге:
|
|
`/home/torrent/rtorrent/rpc.socket`
|
|
|
|
3. Нажмите **Connect** (или Create Account).
|
|
|
|
**Готово!** File Browser, Flood + rTorrent установлены
|
|
|
|
---
|
|
|
|
### Полезные команды для администрирования:
|
|
* **Посмотреть логи Flood:** `journalctl -u flood -f`
|
|
* **Подключиться к голой консоли rTorrent:**
|
|
Войдите под пользователем: `su - torrent`
|
|
Подключитесь к сессии: `tmux attach-session -t rtorrent`
|
|
Чтобы выйти и *не закрыть* rTorrent, нажмите: `Ctrl+B`, затем `D` (detach).
|