Files
articles/ru/install-seed.md
T

268 lines
7.5 KiB
Markdown

### Рекомендации
Гайд написан и протестирован на Ubuntu 22.04. Работоспособность на других ОС не гарантируеться!
---
### Шаг 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 установлены