Files
public-data/seedbox-install.sh

140 lines
3.8 KiB
Bash

#!/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 "-----------------------------------------------------"
echo "- Flood -"
echo "-----------------------------------------------------"
echo "URL: http://${SERVER_IP}:8099"
echo "При настройке Flood выберите:"
echo "Client: rTorrent"
echo "Connection Type: Socket"
echo "Socket path: /home/torrent/rtorrent/rpc.socket"
echo "-----------------------------------------------------"
echo "- File Browser -"
echo "-----------------------------------------------------"
echo "URL Flood: http://${SERVER_IP}:8070"
echo "Логин: admin"
echo "Пароль: admin"
echo "ВНИМАНИЕ! Не забудьте в File Browser поменять стандартный пароль для безопасности!!"