Установка 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