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):
- fichero php.ini
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".
- fichero lighttpd.conf
rubenhortas@blog:~$ sudo vim /etc/lighttpd/lighttpd.conf
En este fichero hay que añadir unas cuantas líneas.
- 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.
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...