domingo, 1 de abril de 2012

instalar torrentflux-b4rt + transmissioncli + lighttpd + sqlite en un seedbox

Si alguno tiene un seedbox, está sopesando la posibilidad de adquirir uno, o quizá de montarse uno a nivel doméstico, puede que le interese esto.

La idea es montar un servidor de torrents (en un entorno sin X) ligero y fácilmente manejable (incluso multiusuario) a través de una interfaz web.

Después de ojear las alternativas, ventajas/desventajas, consumo de recursos y rendimiento, para este ejemplo, me he decidido por montar torrentflux-b4rt + lighttpd + sqlite + transmissioncli.

Ahora sólo hay que instalarlos todos y ponerlos a trabajar como un equipo! ;)

Instalando las aplicaciones


Lo primero que tenemos que hacer es instalar las aplicaciones que vamos a necesitar:
  • lighttpd
  • Servidor web muy ligero. Optimizado para entornos dónde la velocidad es importante.
  • sqlite
  • Sistema de gestión de base de datos pequeño y ligero.
  • php5 (cgi + cli + sqlite)
  • python

Y también instalaremos unas cuantas herramientas que nos permitirán extender las funcionalidades de torrentflux-b4rt.
  • bzip2
  • Para comprimir/descomprimir archivos
  • unrar
  • Para descomprimir archivos .rar
  • unzip
  • xdeview
  • Decodificador para archivos codificados en formato: uuencode, xxencode, BASE64, «quoted printable» y BinHex. !La documentación que he visto por ahí, requiere uudeview, pero ahora se encuentra en el paquete xdeview.
  • cksfv
  • Verificación siemple de archivos.

Para instalar todo:

rubenhortas@blog:~$ sudo aptitude install lighttpd sqlite php5-cgi php5-cli php5-sqlite python bzip2 unrar unzip uudeview cksfv


Activar el soporte de PHP5 en lighttpd


Para esto tendremos que editar un par de archivos (como root):
  1. fichero php.ini

  2. rubenhortas@blog:~$ sudo vim /etc/php5/cgi/php.ini

    En este fichero tenemos que buscar la línea ";cgi.fix_pathinfo = 1" y descomentarla. Para descomentarla basta con quitar el ';'. También se puede pegar una nueva línea "cgi.fix_pathinfo = 1".

  3. fichero lighttpd.conf

  4. rubenhortas@blog:~$ sudo vim /etc/lighttpd/lighttpd.conf

    En este fichero hay que añadir unas cuantas líneas.

    1. Añadir la línea "mod_fastcgi" en la sección "server.modules"
    2. Añadir las líneas:
      fastcgi.server = (".php" => ((
                        "bin-path" => "/usr/bin/php5-cgi",
                        "socket" =>"/tmp/php.socket"
                        )))
      
      al final del archivo.

Hay que reiniciar lighttpd para que coja los cambios:

rubenhortas@blog:~$ sudo /etc/init.d/lighttpd restart

Comprobar que lighttpd y php están funcionando


Para comprobar si lighttpd está funcionando, ponemos la dirección ip del seedbox (o el nombre ,si tiene) en la barra de direcciones de nuestro navegador. Si vemos la página "placeholder page" está funcionando.
Para comprobar si php está funcionando podemos crear un fichero /var/www/info.php que sólo contenga la siguiente línea:
<?php phpinfo(); ?>
Si está todo correcto saldrá la informacíón del sistema al acceder a "http://ip.del.seedbox/info.php".
Ahora, es recomendable borrar los dos ficheros (lighttpd.html e info.php) y crear otro index.html.

Instalar y configurar torrentflux-b4rt


Descargar la última versión de: http://developer.berlios.de/project/showfiles.php?group_id=7000&release_id=14392

!En este howto, la versión usada será torrentflux-b4rt_1.0-beta2.tar.bz2
Para bajarlo elegimos la versión, hacemos clic en el enlace, se abre una nueva pestaña y dónde pone "Problems with the download? Please use this direct link, or try another mirror." copiamos el enlace al que apunta "direct link" y descargamos con wget.

rubenhortas@blog:~$ wget http://downloads.sourceforge.net/project/tf-b4rt.berlios/torrentflux-b4rt_1.0-beta2.tar.bz2

Descomprimimos el archivo:

rubenhortas@blog:~$ tar jxvf torrentflux.tar.bz2

Creamos el directorio dónde va a trabajar torrentflux-b4rt:

rubenhortas@blog:~$ sudo mkdir /var/www/torrentflux

Le damos permisos sobre el directorio al usuario www-data, que va a ser el que maneje torrentflux-b4rt, y necesita permisos para crear la bases de datos, archivos, etc...

rubenhortas@blog:~$ chown -R www-data:www-data /var/www/torrentflux/

rubenhortas@blog:~$ chmod -R 664 /var/www/torrentflux/

Copiamos el contenido del directorio "html/" de torrentflux-b4rt al directorio donde va a estar instalado

rubenhortas@blog:~$ sudo cp -r torrentflux-b4rt_1.0-beta2/html/* /var/www/torrentflux/

Ahora configuramos torrentflux-b4rt, desde la propia interfaz web, introduciendo "http://ip.del.servidor/torrentflux/" en la barra de direcciones del navegador. La configuración es del tipo "siguiente, siguiente" ;)

!La configuración mediante el interfaz web, en principio, no debería dar ningún problema. Pero a veces da problemas con la base de datos. Lo primero es comprobar que el usuario www-data tenga permisos sufcientes sobre el directorio donde está instalado torrentflux-b4rt. Si los tiene y tenemos problemas creando la base de datos, lo único que tenemos que hacer es crearla con sqlite:

rubenhortas@blog:~$ sqlite torrentflux.db

Sólo crearla, inmediatamente después salimos. Las tablas ya las va a crear automáticamente torrentflux-b4rt.
sqlite> .exit


Instalando transmission


El último paso que nos queda es instalar el cliente encargado de manejar los torrents. Torrentflux-b4rt soporta varios, para este artículo he elegido transmissioncli, por estar perfectamente integrado y ser muy ligero.
Bajamos el código fuente de transmission de http://www.transmissionbt.com/download/.
Para que torrentflux-b4rt pueda manejar transmission, necesita una versión parcheada de éste, el último parche es para la 1.06, así que una vez en la página, seleccionamos "Older tarballs" y la bajamos

rubenhortas@blog:~$ wget http://download-origin.transmissionbt.com/files/transmission-1.06.tar.bz2 Que es la última para la que hay parche

Descomprimimos el paquete

rubenhortas@blog:~$ tar jxvf transmission-1.06.tar.bz2

Y lo parcheamos. Para parchearlo vamos al directorio dónde hayamos descomprido el fichero de torrentflux-b4rt

rubenhortas@blog:~$ cd ruta/al/fichero/torrentflux/clients/transmission

Descomprimimos el fichero que hay dentro:

rubenhortas@blog:~$ tar jxvf Transmission-1.06_tfCLI-svn3356.tar.bz2

Y aplicamos los parches de torrentflux-b4rt para transmissioncli

rubenhortas@blog:~$ cp torrentflux-b4rt_1.0-beta2/clients/transmission/Transmission-1.06_tfCLI-svn3356/cli/* transmission-1.06/cli/

!Suponiendo que hayamos descomprimido los dos archivos en el mismo directorio
Y ahora compilamos transmission. Para compilarlo es necesario instalar las dependencias de transmission:

rubenhortas@blog:~$ sudo aptitude install build-essential automake autoconf libtool pkg-config intltool libcurl4-openssl-dev libglib2.0-dev libevent-dev libappindicator-dev

Entramos al directorio y compilamos

rubenhortas@blog:~$ cd /descargas/transmission...

rubenhortas@blog:~$ ./configure -q && make -s

rubenhortas@blog:~$ make

rubenhortas@blog:~$ sudo make install

Y el resultado, al entrar en http://ip.del.seedbox/torrentflux es...

4 comentarios:

  1. Buenas tardes, tengo una consulta sobre la versión del transmission, como puedo saber si una versión superior puede funcionar en el flux, necesitaria la 1.9 o superior , debido a cierto tracker. Gracias

    ResponderEliminar
  2. Buenos días. Yo buscaría en la documentación oficial de los proyectos. En sus páginas, suelen ponerlo en el changelog o en algún foro como ticket. También puedes mirar en sus foros de github. Si aún así se resiste, una búsqueda rápida en google te dará unos resultados extras :)

    Btw, revisa este enlace: http://tf-b4rt.berlios.de/forum/index.php?action=printpage;topic=749.0 parece que tenían el mismo problema y que funciona bien.

    Espero haberte servido de ayuda. Saludos!

    ResponderEliminar
    Respuestas
    1. Gracias de verdad, me lo guardo para leer ese enlace y ya te comento.

      Eliminar