### Рекомендации Гайд написан и протестирован на 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 установлены