Instalar torrentflux-b4rt + Transmission en Debian

Tras instalar y actualizar Debian a la versión Etch en mi Kurobox, me he decidido a instalar torrentflux-b4rt. Torrentflux-b4rt es una aplicación web destinada a controlar descargas de Internet, permitiendo gestionar descargas http, ftp o mediante archivos Torrent usando clientes Torrent que se ejecutan en segundo plano. La instalación incluye el cliente BitTornado aunque es posible utilizar otros clientes como Transmission o Azureus si los tenemos instalados en el sistema. Torrentflux-b4rt se basa originariamente en Torrentflux pero su código ha sido posteriormente reescrito y ahora son dos aplicaciones totalmente independientes.

Preparación del entorno

Antes de proceder a la instalación de torrentflux-b4rt, es necesario instalar un servidor web, PHP5, SQL y Phyton. Así que nos conectamos vía ssh con el usuario root y comenzamos:

Instalamos Lighttpd:

apt-get install lighttpd

Instalamos PHP5 y SQLite:

apt-get install sqlite
apt-get install php5-cgi
apt-get install php5-cli
apt-get install php5-sqlite

Instalamos Phyton:

apt-get install python

Instalamos otras utilidades necesarias:

apt-get install bzip2
apt-get install unzip
apt-get install uudeview
apt-get install cksfv

Configuramos lighttpd para que use PHP5-cgi:

nano /etc/lighttpd/conf-available/10-fastcgi.conf

reemplazando:
"bin-path" => "/usr/bin/php4-cgi",
por:
"bin-path" => "/usr/bin/php5-cgi",

Activamos los módulos fast-cgi y cgi:

cd /etc/lighttpd/conf-enabled
ln -s ../conf-available/10-cgi.conf 10-cgi.conf
ln -s ../conf-available/10-fastcgi.conf 10-fastcgi.conf

Permitimos que cualquier cliente se pueda conectar al servidor y damos privilegios de root al servidor lighttp comentando las siguientes lineas:

nano /etc/lighttpd/lighttpd.conf
#server.bind                = "localhost"
#server.username            = "www-data"
#server.groupname           = "www-data"

Reiniciamos el servidor lighttp:

/etc/init.d/lighttpd restart

Ahora comprobaremos, que lighttpd funciona y tiene soporte para PHP, así que crearemos el archivo “/var/www/info.php” en el que introduciremos unas sencillas líneas en PHP, que nos mostrará muchos detalles de nuestra instalación de PHP, como la versión instalada. Si se muestra correctamente significará que hemos configurado correctamente tanto lighttpd como PHP, y ya podríamos comenzar a instalar Torrentflux-b4rt, pero antes crearemos dicho archivo:

nano /var/www/info.php

En este archivo tendremos que escribir lo siguiente:

<?php
phpinfo();
?>

Como siempre, salimos y guardamos el archivo, ahora tenemos que ir a nuestro navegador web favorito y escribir la siguiente dirección, “http://192.168.0.100/info.php” (suponiendo que esta sea la dirección IP de nuestro servidor). Y veremos algo así:

Ahora que tenemos todo funcionando correctamente, toca el turno de instalar Torrentflux-b4rt, para lo cual volveremos a la terminal desde la que controlamos nuestro servidor ciego vía SSH. Lo primero es situarnos en la carpeta home del usuario root, donde descargaremos el archivo comprimido del programa, y con el que trabajaremos a partir de ahora:

cd /root
wget http://download2.berlios.de/tf-b4rt/torrentflux-b4rt_1.0-beta2.tar.bz2

Tras descargar el archivo, debería tardar poco, tenemos que descomprimirlo usando el comando tar, de la siguiente manera:

tar -jxvf torrentflux-b4rt_1.0-beta2.tar.bz2

Ahora que tenemos los archivos descomprimidos, crearemos la carpeta de Torrentflux en el directorio de trabajo de lightppd, /var/www/torrentflux/ y moveremos ahí los archivos que necesitemos y por supuesto les daremos los permisos necesarios para que lighttpd pueda manejarlos, asegurándonos de que puedan ser manejados por www-data, el usuario que usa lighttpd.

mkdir /var/www/torrentflux
cd torrentflux-b4rt_1.0-beta2/
cp -r html/* /var/www/torrentflux
chown -R www-data:www-data /var/www/torrentflux

Creamos un directorio para las descargas (si conocer el estado de las particiones podemos hacerlo con el comando df):

mkdir /mnt/torrentflux
chmod 777 /mnt/torrentflux

Ahora que tenemos todo preparado sólo nos queda abrir nuestro navegador favorito, por ejemplo Firefox, e introducir la dirección, “http://192.168.0.100/torrentflux/” (suponiendo que esta sea la dirección IP de nuestro servidor). Tras introducir la dirección entraremos en el proceso de instalación, donde se creará la base de datos que usará la aplicación, indicaremos la ruta donde se descargarán los archivos, etc. En el último paso de este proceso de configuración llegaremos a la pantalla de login. El usuario y la contraseña que introduzcamos serán las que el programa guardará como las del usuario SuperAdmin, así que fijaros bien que escribís que luego necesitaréis esa clave y usuario. Tras el login entraremos en la pantalla principal de la aplicación, como la que se encuentra al principio de esta entrada.

Abrir puertos:

No te olvides de abrir los puertos en el router y redireccionarlos al servidor dónde se ejecuta torrentflux. Por defecto, los puertos que utiliza son los que van del 49160 al 49300.

Instalar Transmission

Junto con torrentflux se incluye el cliente torrent BitTornado pero es posible utilizar otros clientes torrent para nuestras descargas como Transmission si es que los tenemos instalados en nuestro servidor.
Para instalar Transmission y poderlo usar desde torrentflux en nuestro servidor Debian seguiremos los siguientes pasos:

wget http://download.m0k.org/transmission/files/transmission-1.20.tar.bz2
tar -jxvf transmission-1.20.tar.bz2
cd /root/transmission-1.20/cli
rm transmissioncli.c
wget http://svn.berlios.de/svnroot/repos/tf-b4rt/branches/clients/transmission/transmission-1.20/cli/transmissioncli.c

apt-get install file make gcc libc6-dev pkg-config libssl-dev libcurl3-dev

cd /root/transmission-1.20
./configure –disable-gtk
make
make install

Existe un problema en torrentflux cuando consulta los puertos usados mediante netstat, lo que ocasiona que existan conflictos al descargar dos torrents simultaneamente usando Transmision si no indicamos manualmente puertos distintos. Lo he solucionado modificando el fichero /var/www/torrentflux/inc/functions/functions.core.netstat.php, en el método netstatPortList(), en el caso (case 1: // linux) modificando la línea:

$retStr .= shell_exec($cfg['bin_netstat']." -e -l -p --tcp --numeric-hosts --numeric-ports 2> /dev/null | ".$cfg['bin_grep']." -v root | ".$cfg['bin_grep']." ". $ch->binSocket ." | ".$cfg['bin_awk']." '{print $4}' | ".$cfg['bin_awk']." 'BEGIN{FS=":"}{print $2}'");

por:

$retStr .= shell_exec($cfg['bin_netstat']." -e -l -p --tcp --numeric-hosts --numeric-ports 2> /dev/null | ".$cfg['bin_grep']." root | ".$cfg['bin_grep']." ". $ch->binSocket ." | ".$cfg['bin_awk']." '{print $4}' | ".$cfg['bin_awk']." 'BEGIN{FS=":"}{print $2}'");

Si queremos consultar los procesos activos, podemos hacerlo con:

netstat -e -l -p --tcp --numeric-ports

Related Post

2 Comments
  1. Paco says:

    Buenas compañero,

    Muchas gracias por el tutorial…, me ha ayudado bastante.

    Una pregunta: Ya tengo instalado el Torrentflux-b4rt, pero ahora me gustaría instalar el Transmision.

    Ya tengo instalado el Transmision en Ubuntu, pero ahora no se como vincularlo a Torrentflux-b4rt…

    En el manual explicas como instalarlo y “vincularlo”, pero no explicas como solo vincularlo (si ya lo tenemos instalado de antes).

    ¿Me podrías explicar como solo vincularlo?

    Muchas gracias!

  2. alberto says:

    @Paco
    Creo que no has entendido bien que Transmision se instala en el Kurobox. No en tu PC.