140 lines
3.8 KiB
Bash
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 поменять стандартный пароль для безопасности!!"
|