Установка Deluge на Ubuntu Server
Сейчас сложно представить домашний сервер без торрент-клиента, если для Windows по умолчанию подразумевается — uTorrent, то для linux не все так однозначно. Пришлось прибегнуть к помощи интернет сообщества, и в результате по количеству положительных отзывов вырвался в лидеры торрент-клиент для linux — Deluge. Его плюсы: удобный и понятный веб-интерфейс, есть клиенты для разных платформ, модульность, т.е. основная часть устанавливается в качестве демона, а средства управления устанавливаются по необходимости.
И так приступим к установке…
Шаг 1. Создадим нового пользователя и добавим его в группу deluge:
sudo adduser --disabled-password --system --home /var/lib/deluge --gecos "Home Deluge Server" --group deluge
Шаг 2. Дадим права на запись логов пользователю deluge:
sudo mkdir /var/log/deluge sudo chown deluge:deluge /var/log/deluge
Шаг 3. Устанавливаем Deluge и web-интерфейс для него:
sudo apt-get update sudo apt-get install deluged deluge-webui
Шаг 4. Создадим файл с параметрами запуска демона deluge
Открываем текстовый редактор nano с указанием имени файла:
sudo nano /etc/default/deluge-daemon
Указываем следующие параметры:
# Configuration for /etc/init.d/deluge-daemon # The init.d script will only run if this variable non-empty. DELUGED_USER="deluge" # Should we run at startup? RUN_AT_STARTUP="YES"
Сохраняем изменения комбинацией клавиш Ctrl + O и выходим из nano — Ctrl + x
Шаг 5. Создадим скрипт запуска демона
Снова запускаем текстовый редактор nano:
sudo nano /etc/init.d/deluge-daemon
И вставляем следующий текст:
#!/bin/sh
### BEGIN INIT INFO
# Provides: deluge-daemon
# Required-Start: $local_fs $remote_fs
# Required-Stop: $local_fs $remote_fs
# Should-Start: $network
# Should-Stop: $network
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Daemonized version of deluge and webui.
# Description: Starts the deluge daemon with the user specified in
# /etc/default/deluge-daemon.
### END INIT INFO
# Author: Adolfo R. Brandes
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DESC="Deluge Daemon"
NAME1="deluged"
NAME2="deluge"
DAEMON1=/usr/bin/deluged
DAEMON1_ARGS="-d" # Consult `man deluged` for more options
DAEMON2=/usr/bin/deluge-web
DAEMON2_ARGS="" # Consult `man deluge-web` for more options
PIDFILE1=/var/run/$NAME1.pid
PIDFILE2=/var/run/$NAME2.pid
UMASK=022 # Change this to 0 if running deluged as its own user
PKGNAME=deluge-daemon
SCRIPTNAME=/etc/init.d/$PKGNAME
# Exit if the package is not installed
[ -x "$DAEMON1" -a -x "$DAEMON2" ] || exit 0
# Read configuration variable file if it is present
[ -r /etc/default/$PKGNAME ] && . /etc/default/$PKGNAME
# Load the VERBOSE setting and other rcS variables
[ -f /etc/default/rcS ] && . /etc/default/rcS
# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions
if [ -z "$RUN_AT_STARTUP" -o "$RUN_AT_STARTUP" != "YES" ]
then
log_warning_msg "Not starting $PKGNAME, edit /etc/default/$PKGNAME to start it."
exit 0
fi
if [ -z "$DELUGED_USER" ]
then
log_warning_msg "Not starting $PKGNAME, DELUGED_USER not set in /etc/default/$PKGNAME."
exit 0
fi
#
# Function that starts the daemon/service
#
do_start()
{
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --exec $DAEMON1 \
--chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test > /dev/null
RETVAL1="$?"
start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --exec $DAEMON2 \
--chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK --test > /dev/null
RETVAL2="$?"
[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 1
start-stop-daemon --start --background --quiet --pidfile $PIDFILE1 --make-pidfile --exec $DAEMON1 \
--chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON1_ARGS
RETVAL1="$?"
sleep 2
start-stop-daemon --start --background --quiet --pidfile $PIDFILE2 --make-pidfile --exec $DAEMON2 \
--chuid $DELUGED_USER --user $DELUGED_USER --umask $UMASK -- $DAEMON2_ARGS
RETVAL2="$?"
[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] || return 2
}
#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE2
RETVAL2="$?"
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --user $DELUGED_USER --pidfile $PIDFILE1
RETVAL1="$?"
[ "$RETVAL1" = "2" -o "$RETVAL2" = "2" ] && return 2
rm -f $PIDFILE1 $PIDFILE2
[ "$RETVAL1" = "0" -a "$RETVAL2" = "0" ] && return 0 || return 1
}
case "$1" in
start)
[ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC" "$NAME1"
do_start
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
stop)
[ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME1"
do_stop
case "$?" in
0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
esac
;;
restart|force-reload)
log_daemon_msg "Restarting $DESC" "$NAME1"
do_stop
case "$?" in
0|1)
do_start
case "$?" in
0) log_end_msg 0 ;;
1) log_end_msg 1 ;; # Old process is still running
*) log_end_msg 1 ;; # Failed to start
esac
;;
*)
# Failed to stop
log_end_msg 1
;;
esac
;;
*)
echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
exit 3
;;
esac
:
Скрипт взят с официального сайта Deluge.
Сохраняем изменения комбинацией клавиш Ctrl + O и выходим из nano — Ctrl + x.
Шаг 6. Делаем скрипт исполняемым:
sudo chmod 755 /etc/init.d/deluge-daemon
Шаг 7. Пропишем скрипт запуска демона в автозагрузку
sudo update-rc.d deluge-daemon defaults
Шаг 8. Перезагрузка
В принципе, можно не перезагружать Ubuntu, а запустить демона командой:
sudo invoke-rc.d deluge-daemon start
Но тогда мы не сможем убедиться, что скрипт автозапуска работает нормально. Поэтому лучше перезагрузиться:
sudo reboot
После загрузки сервера открываем браузер, в адресной строке вводим ip-адрес, либо название сервера и указываем порт 8112
http://homeserver:8112 (http://192.168.0.2:8112)
Если все сделано правильно, то в браузере откроется страница Deluge и попросит ввести пароль. Пароль по умолчанию: deluge. Все остальные настройки торрент-клиента можно сделать через веб-интерфейс.
Еще проверить работоспособность можно с помощью команды top, она покажет активность всех процессов, а нас интересуют только два из них. Это deluged и deluge-web.
Чтобы остановить/перезапустить/запустить демон вводим команду:
sudo /etc/init.d/deluge-daemon stop/restart/start
P.S. Данную инструкцию я проделывал на Ubuntu Server 12.04 и Deluge 1.3.5
Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!
Хотите поблагодарить автора за эту заметку? Вы можете это сделать!


У вас опечатка: пользователь создается с домашней папкой /var/lib/deluge, а права устанавливаются на /var/log/deluge
Алексей
18 мая 2013 в 21:46
Алексей, спасибо, исправил. Команды верные, а вот в описании была ошибка.
did5
20 мая 2013 в 08:49
А зачем звездочку в конце указали?
Да и, если прописывать команду без неё выдает
chown: cannot access `/var/log/deluge': No such file or directoryСергей
30 Июл 2013 в 10:53
И коннектится надо будет на порт 8112, а не на 8080
Сергей
30 Июл 2013 в 10:54
Сергей, спасибо, подправил.
did5
31 Июл 2013 в 08:15
В шаге 2 перед тем как задать права нужно создать папку deluge
sudo mkdir /var/log/delugeЗвездочка наверно для этого и нужна былв.
Juriy
19 Ноя 2014 в 14:50
Juriy, спасибо, добавил строку в текст.
did5
20 Ноя 2014 в 10:45
А как сделать чтобы скачанные папки имели чмод 777 ?
Кирилл
25 Фев 2015 в 19:25
Как же сделать чтобы скачанные папки имели чмод 777 ?
Кирилл
26 Фев 2015 в 11:31
спс, все гуд. webui на русском умеет?
demon-ogr
04 Мар 2015 в 22:40
demon-ogr, а зачем? и так все понятно.
did5
06 Мар 2015 в 09:33
тут про права 777 спрашивали.
w.rutracker.space/http://...1242209#71242209
«Тогда, остановлюсь на transmission daemon.
Кстати, вдруг кому будет интересно, как разруливать права доступа к файлам для клиента. Для сделал это при помощи acl. Без всяких хитромудрых добавлений юзера демона в группы. И безопасно и удобно.
Поддержка acl должна быть включена в ядре. так же, ставим программку acl и заводим работу acl для нужного нам раздела в fstab, если в опр. дистрибутиве этот момент не заведен автоматом.
UUID=95b2a917-515e-46ac-8d72-443146184ab5 /mnt/media01 ext4 acl,suid,usrquota 0 2 #для поддержки списка контроля в полном объеме.
...
/mnt/media1/iron/1 /home/iron/1 none bind 0 0
А далее, как и положено, расчесываем обычные права на файлы своего профиля
Код:
sudo chown -R iron:iron /home/iron/1/
sudo find /home/iron/1/ -type d -print0 | sudo xargs -0 chmod 0700
sudo find /home/iron/1/ -type f -print0 | sudo xargs -0 chmod 0600
chmod 0755 /home/iron/1
sudo setfacl -R -b /home/iron/1
и добавляем права уже выборочно
Код:
sudo find /home/iron/1/downloads -type d -print0 | sudo xargs -0 setfacl -dm u:www-data:rwx,u:debian-transmission:rwx,user:iron:rwx
sudo find /home/iron/1/downloads -type d -print0 | sudo xargs -0 setfacl -m u:www-data:rwx,u:debian-transmission:rwx,user:iron:rwx
sudo find /home/iron/1/downloads -type f -print0 | sudo xargs -0 setfacl -m u:www-data:rw,u:debian-transmission:rw,user:iron:rw
И теперь у всех котофанов и котофанш не будет нужды плодить уязвимости с добавлением юзеров сервисов в юзерс итц и уж тем более давать права всем для корнекаталога.
А вместо этого маргинального порнолаба можно и pornbay пользовать. И поиск удобней и нет заброшенных раздач с мертвыми превью.»
как то же самое сделать с deluge думаю, догадаетесь.
Dmitry
19 Авг 2016 в 16:10
использовал всегда transmission-daemon. около пяти лет. Никаких проблем и есть удобнейший remote-gui, если нужно подцепиться к серверу с другого хоста в локалке.
ради интереса, попробовал этот deluge, как тут оговорено. Вырубил transmission. Установил все.
Deluge проработал около часа, а потом стал недоступен. Пришлось перезапустить.
В оговоренных выше логах (их создание и права на них) пусто.
В топку такое уг. Вернулся на transmission-daemon.
За 5 лет ничего у deluge и libtorrent не изменилось. все те же детские болезни крашей.
Dmitry
20 Авг 2016 в 13:26
переименуй это делюж в папку с рускими буквами, и он у тебя не запустится... гамнище. вебморда не идет с включенными ксс на опере престо, в топку... продолжаем юзать трансмиссию...
Димка Айфончик
09 Окт 2016 в 20:52
Спасибо описание гуд, все работает как часы ubuntu serv 16.04 самый удобная качалка в отличие от transmission, но и transmission не буду лить грязью — достойна, видимо каждому свое!
Павел
24 Июл 2017 в 17:44