Блог did5.ru

Про АйТи и около айтишные темы

Установка Deluge на Ubuntu Server

14 комментариев

Сейчас сложно представить домашний сервер без торрент-клиента, если для Windows по умолчанию подразумевается — uTorrent, то для linux не все так однозначно. Пришлось прибегнуть к помощи интернет сообщества, и в результате по количеству положительных отзывов вырвался в лидеры торрент-клиент для linux — Deluge. Его плюсы: удобный и понятный веб-интерфейс, есть клиенты для разных платформ, модульность, т.е. основная часть устанавливается в качестве демона, а средства управления устанавливаются по необходимости.

deluge 3 Установка Deluge на Ubuntu Server

И так приступим к установке…

Шаг 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. Все остальные настройки торрент-клиента можно сделать через веб-интерфейс.

deluge 2 Установка Deluge на Ubuntu Server

Еще проверить работоспособность можно с помощью команды top, она покажет активность всех процессов, а нас интересуют только два из них. Это deluged и deluge-web.

deluge thumb Установка Deluge на Ubuntu Server

Чтобы остановить/перезапустить/запустить демон вводим команду:

sudo /etc/init.d/deluge-daemon stop/restart/start

P.S. Данную инструкцию я проделывал на Ubuntu Server 12.04 и Deluge 1.3.5

Нашли опечатку в тексте? Пожалуйста, выделите ее и нажмите Ctrl+Enter! Спасибо!


Хотите поблагодарить автора за эту заметку? Вы можете это сделать!


Автор: did5

20 Ноя 2012 в 14:50

Рубрика: Linux

Метки:

14 комментариев на «Установка Deluge на Ubuntu Server»

Вы можете подписаться на RSS-ленту комментариев или оставить трекбек для публикации «Установка Deluge на Ubuntu Server».

  1. У вас опечатка: пользователь создается с домашней папкой /var/lib/deluge, а права устанавливаются на /var/log/deluge

    Алексей

    18 мая 2013 в 21:46

  2. Алексей, спасибо, исправил. Команды верные, а вот в описании была ошибка.

    did5

    20 мая 2013 в 08:49

  3. sudo chown deluge:deluge /var/log/deluge*

    А зачем звездочку в конце указали?

    Да и, если прописывать команду без неё выдает chown: cannot access `/var/log/deluge': No such file or directory

    Сергей

    30 Июл 2013 в 10:53

  4. И коннектится надо будет на порт 8112, а не на 8080

    Сергей

    30 Июл 2013 в 10:54

  5. Сергей, спасибо, подправил.

    did5

    31 Июл 2013 в 08:15

  6. В шаге 2 перед тем как задать права нужно создать папку deluge sudo mkdir /var/log/deluge

    Звездочка наверно для этого и нужна былв.

    Juriy

    19 Ноя 2014 в 14:50

  7. Juriy, спасибо, добавил строку в текст.

    did5

    20 Ноя 2014 в 10:45

  8. А как сделать чтобы скачанные папки имели чмод 777 ?

    Кирилл

    25 Фев 2015 в 19:25

  9. Как же сделать чтобы скачанные папки имели чмод 777 ?

    Кирилл

    26 Фев 2015 в 11:31

  10. спс, все гуд. webui на русском умеет?

    demon-ogr

    04 Мар 2015 в 22:40

  11. demon-ogr, а зачем? и так все понятно.

    did5

    06 Мар 2015 в 09:33

  12. тут про права 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

  13. использовал всегда transmission-daemon. около пяти лет. Никаких проблем и есть удобнейший remote-gui, если нужно подцепиться к серверу с другого хоста в локалке.

    ради интереса, попробовал этот deluge, как тут оговорено. Вырубил transmission. Установил все.

    Deluge проработал около часа, а потом стал недоступен. Пришлось перезапустить.

    В оговоренных выше логах (их создание и права на них) пусто.

    В топку такое уг. Вернулся на transmission-daemon.

    За 5 лет ничего у deluge и libtorrent не изменилось. все те же детские болезни крашей.

    Dmitry

    20 Авг 2016 в 13:26

  14. переименуй это делюж в папку с рускими буквами, и он у тебя не запустится... гамнище. вебморда не идет с включенными ксс на опере престо, в топку... продолжаем юзать трансмиссию...

    Димка Айфончик

    09 Окт 2016 в 20:52

Ваш отзыв