rTorrent con interfaz web

Actualización: basta actualizar el firmware a la versión 722 o superior para disponer del rTorrent 0.8.2 en la interfaz Download Station incluida de serie en los NAS Synology

Siguiendo con los tutoriales, hoy toca hablar de otro cliente P2P para la red Bittorrent. Concretamente, el rTorrent, el cual casualmente es el que se usa (en una versión antigua) en el Download Station integrado.

rTorrent tiene mas funciones que Transmission, algunas de ellas interesantes como el soporte DHT o la posibilidad de descarga selectiva del contenido de un torrent (cosa que espero que añadan en Transmission+Clutch pronto.

En cuanto al rendimiento, ciertamente debo decir que rinde más que Transmission, aunque me gusta más la gui de gestión de este último y como tampoco rinde tan mal, personalmente me quedo con Transmission.

Para instalar el rTorrent, instalaremos primero todo lo necesario:

ipkg install rtorrent xmlrpc-c php php-fcgi php-curl libcurl lighttpd sqlite svn screen

Una vez instalado todo (puede que algun paquete ya lo tuvieseis instalado), crearemos la configuración en el archivo /root/.rtorrent.rc y un directorio de trabajo.

cd /root
mkdir .rtorrent
nano .rtorrent.rc

(nota. en vez de nano podeis usar vi o cualquier otro editor a vuestra elección.

El contenido del archivo .rtorrent.rc, debe ser similar al siguiente, modificando vosotros los valores que deseeis:

# Maximum and minimum number of peers to connect to per torrent.
#min_peers = 40
#max_peers = 100

# Same as above but for seeding completed torrents (-1 = same as downloading)
#min_peers_seed = 10
#max_peers_seed = 50

# Maximum number of simultanious uploads per torrent.
#max_uploads = 15

# Global upload and download rate in KiB. "0" for unlimited.
#download_rate = 0
#upload_rate = 0

# Default directory to save the downloaded torrents.
#directory = ./

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#session = ./session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#schedule = watch_directory,5,5,load_start=./watch/*.torrent
#schedule = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#schedule = low_diskspace,5,60,close_low_diskspace=100M

# Stop torrents when reaching upload ratio in percent,
# when also reaching total upload in bytes, or when
# reaching final upload ratio in percent.
# example: stop at ratio 2.0 with at least 200 MB uploaded, or else ratio 20.0
#schedule = ratio,60,60,"stop_on_ratio=200,200M,2000"

# The ip address reported to the tracker.
#ip = 127.0.0.1
#ip = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#bind = 127.0.0.1
#bind = rakshasa.no

# Port range to use for listening.
#port_range = 6890-6999

# Start opening ports at a random position within the port range.
#port_random = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#check_hash = no

# Set whetever the client should try to connect to UDP trackers.
#use_udp_trackers = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#schedule = ip_tick,0,1800,ip=rakshasa
#schedule = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
# encryption = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
# dht = auto

# UDP port to use for DHT.
# dht_port = 6881

# Enable peer exchange (for torrents not marked private)
# peer_exchange = yes

# Do not modify the following parameters unless you know what you're doing.
# Hash read-ahead controls how many MB to request the kernel to read
# ahead. If the value is too low the disk may not be fully utilized,
# while if too high the kernel might not be able to keep the read
# pages in memory thus end up trashing.
#hash_read_ahead = 10

# Interval between attempts to check the hash, in milliseconds.
#hash_interval = 100

# Number of attempts to check the hash while using the mincore status,
# before forcing. Overworked systems might need lower values to get a
# decent hash checking rate.
#hash_max_tries = 10

Quitad el # de los valores que deseeis modificar. Si no lo quitais, se usa el valor indicado que es el por defecto.

Modificar como mínimo el directorio de descargas y sesión, y tambien si quereis, cambiad los puertos por defecto por otros (y abridlos en el router):

directory = /volume1/descargas/
session = /root/.rtorrent

Al final de .rtorrent.rc añadid:

scgi_local = /root/.rtorrent/rpc.socket

Lista la configuración de rTorrent, debemos modificar un poco la de lighttpd que se encuentra en el archivo /opt/etc/lighttpd/lighttpd.conf añadiendo al final:

scgi.server = (
               "/RPC2" =>
                 ( "127.0.0.1" =>
                   (
                     "socket" => "/root/.rtorrent/rpc.socket",
                     "check-local" => "disable",
                     "disable-time" => 0,
                   )
                 )
             )

También buscad el apartado server.modules que esta al principio de la configuración y añadid el modulo “mod_scgi”:

server.modules = (
                   "mod_access",
                   "mod_fastcgi",
                   ...
                   "mod_scgi"
                  )

Listo el lighttpd, procedemos a descargar wTorrent, la interfaz de control:

cd /opt/share/www/lighttpd
svn co svn://wtorrent-project.org/repos/trunk/wtorrent/
cd wtorrent
cd conf
cp sample.home.conf.php home.conf.php
nano home.conf.php

Modificar del archivo home.conf.php los valores URL y BASE cambiando el dominio indicado por la IP de nuestro NAS. ej ejemplo: 192.168.1.1:8081

También modificar los siguientes parametros para que queden asi:

define( 'RT_HOST',                      'localhost');
define( 'RT_PORT',                      8081);
define( 'RT_DIR',                       'RPC2/');
define( 'RT_AUTH',                      false);

Luego en DIR_EXEC ponemos /opt/share/www/lighttpd/wtorrent/ y en DIR_DOWNLOAD /volume1/descargas

Luego nos vamos a /opt/share/www/lighttpd/wtorrent/db y borramos database.db

Para iniciar rTorrent, lo haremos por SSH/Telnet:

screen

Pulsamos cualquier tecla.

rtorrent

Y ya podemos cerrar el SSH/Telnet que el rTorrent seguirá ejecutándose.

Si quisieramos volver a acceder al rTorrent que esta ejecutandose por linea de comandos, conectamos por SSH y ejecutamos:

screen -r

Debemos iniciar/reiniciar lighttpd para aplicar los cambios que le hemos hecho a la configuración:

cd /opt/etc/init.d
./S80lighttpd stop
./S80lighttpd start

Listo el servidor y el cliente, nos conectamos usando el navegador web que preferamos al wTorrent para configurar el usuario accediendo a esta dirección web: http://ipdenuestronas:8081/wtorrent/install.php

A partir de este momento, tansolo debemos acceder a http://ipdenuestronas:8081/wtorrent introduciendo el usuario y contraseña elegidos para añadir y controlar nuestros torrents.

Para vuestra información, comentaros que existen otras guis en diversos formatos para controlar rTorrent, y recordad que si lo deseáis podéis controlarlo por consola, ahorrándoos el tener que instalar y configurar el servidor web.

2 opiniones en “rTorrent con interfaz web”

  1. Hola:

    Al poner en el archivo .rtorrent.rc la opción ‘scgi_local = /root/.rtorrent/rpc.socket’ rTorrent no es capaz de arrancar y jamás llega a crear el archivo de socket.

    He probado a cambiar permisos, aumentándolos, y a poner el archivo en varios lugares sin resultado.

    Sin esa línea rTorrent funciona correctamente.

    ¿Alguna idea del problema?

  2. Este tutorial ya no es necesario, basta con actualizar a uno de los últimos firmwares disponibles para obtener la última version de rTorrent en el Download Station que se incluye.

Comentarios cerrados.