#!/bin/bash set -e echo "Иницилизация..." FB_DB="/var/lib/filebrowser/filebrowser.db" echo "Установка зависимостей..." apt-get update apt-get install -y rtorrent tmux curl build-essential ufw sudo echo "Создание пользователя torrent..." id "torrent" &>/dev/null || adduser --disabled-password --gecos "" torrent echo "Настройка rTorrent..." sudo -u torrent mkdir -p /home/torrent/rtorrent/{downloads,session,watch} cat << 'EOF' > /home/torrent/.rtorrent.rc directory.default.set = /home/torrent/rtorrent/downloads session.path.set = /home/torrent/rtorrent/session network.port_range.set = 50000-50000 network.port_random.set = no 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.mode.set = auto dht.port.set = 6881 protocol.pex.set = yes trackers.use_udp.set = yes EOF chown torrent:torrent /home/torrent/.rtorrent.rc echo "Установка Node.js и Flood..." curl -fsSL https://deb.nodesource.com/setup_20.x | bash - apt-get install -y nodejs npm install -g flood FLOOD_BIN=$(which flood) echo "Установка File Browser..." curl -fsSL https://raw.githubusercontent.com/filebrowser/get/master/get.sh | bash mkdir -p /var/lib/filebrowser filebrowser config init \ --database "$FB_DB" filebrowser users add admin admin \ --perm.admin \ --database "$FB_DB" 2>/dev/null || true filebrowser users update admin \ --password admin \ --database "$FB_DB" echo "Настройка systemd..." cat << 'EOF' > /etc/systemd/system/rtorrent.service [Unit] Description=rTorrent After=network.target [Service] Type=forking User=torrent Group=torrent 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 EOF cat << EOF > /etc/systemd/system/flood.service [Unit] Description=Flood After=rtorrent.service [Service] Type=simple User=torrent Group=torrent ExecStart=${FLOOD_BIN} --port 8099 --host 0.0.0.0 WorkingDirectory=/home/torrent Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF cat << EOF > /etc/systemd/system/filebrowser.service [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 Restart=always RestartSec=5 [Install] WantedBy=multi-user.target EOF echo "Запуск сервисов..." systemctl daemon-reload systemctl enable --now rtorrent systemctl enable --now flood systemctl enable --now filebrowser echo "Настройка UFW..." ufw allow 8099/tcp ufw allow 8070/tcp ufw allow 50000/tcp ufw allow 6881/udp SERVER_IP=$(curl -s ifconfig.me || curl -s icanhazip.com || echo "IP_СЕРВЕРА") echo "" echo "Установка завершена." echo "URL Flood: http://${SERVER_IP}:8099" echo "URL File Browser: http://${SERVER_IP}:8099" echo "При настройке Flood выберите:" echo "Client: rTorrent" echo "Connection Type: Socket" echo "Socket path: /home/torrent/rtorrent/rpc.socket"