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):
- fichero php.ini
- fichero lighttpd.conf
- Añadir la línea "mod_fastcgi" en la sección "server.modules"
- Añadir las líneas:
fastcgi.server = (".php" => (( "bin-path" => "/usr/bin/php5-cgi", "socket" =>"/tmp/php.socket" )))
al final del archivo.
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".
rubenhortas@blog:~$ sudo vim /etc/lighttpd/lighttpd.conf
En este fichero hay que añadir unas cuantas líneas.
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...
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
ResponderEliminarah, actualmente tengo la 1.22
EliminarBuenos 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 :)
ResponderEliminarBtw, 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!
Gracias de verdad, me lo guardo para leer ese enlace y ya te comento.
Eliminar