27 mar

Instalación de rutorrent

Bueno,

Voy a explicar como montar rutorrent + nginx +php-fpm, esta solución esta pensada sobretodo para la raspperry, ya que es muy liviano y la verdad es que después de mucho tiempo me parece de las mejores soluciones, también aprovechamos la instalacion con nginx+php-fpm que explique en el siguiente tutorial

rutorrent

Es una web que se integra con el cliente rtorret, de tal manera que lo hace muy amigable, yo personalmente estuve mucho tiempo jugando con rtorrent por consola, fue más montar el chirringo que lo que me aporto…

La web del proyecto es http://code.google.com/p/rutorrent/

Bueno pues explicado esto vamos al lio.

Primero de todo vamos actualizar el sistema operativo, todos los comandos están basados en debian.


sudo apt-get update && sudo apt-get upgrade

sudo apt-get install xmlrpc-api-utils

Ahora vamos a descargar el código de rutorrent, por defecto yo tengo el código de la web en /var/www.

cd /var/www/
wget http://rutorrent.googlecode.com/files/rutorrent-3.5.tar.gz
wget http://rutorrent-tadd-labels.googlecode.com/files/lbll-suite_0.8.1.tar.gz
wget http://rutorrent.googlecode.com/files/data-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/erasedata-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/ratio-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/seedingtime-3.3.tar.gz
wget http://rutorrent.googlecode.com/files/tracklabels-3.3.tar.gz
wget http://srious.biz/nfo.tar.gz

tar xvfz rutorrent-3.5.tar.gz
rm -rf rutorrent-3.5.tar.gz
tar -zxvf lbll-suite_0.8.1.tar.gz
tar -zxvf data-3.3.tar.gz
tar -zxvf erasedata-3.3.tar.gz
tar -zxvf ratio-3.3.tar.gz
tar -zxvf seedingtime-3.3.tar.gz
tar -zxvf tracklabels-3.3.tar.gz
tar -zxvf nfo.tar.gz

mv lbll-suite data erasedata ratio seedingtime tracklabels nfo /var/www/rutorrent/plugins
rm lbll-suite_0.8.1.tar.gz data-3.3.tar.gz erasedata-3.3.tar.gz ratio-3.3.tar.gz seedingtime-3.3.tar.gz tracklabels-3.3.tar.gz nfo.tar.gz

Bueno con esto ya tenemos el código de la web, ahora debemos configurar rtorrent y nginx para que puedan trabajar con el, empezamos por rtorrent, nos iremos al fichero de configuración, recordar que si habéis seguido este post de instalación, deberías tener el fichero de configuración en la home de vuestro usuario, si no es así pues allá donde lo tengáis


vim  ~/.rtorrent.rc

Añadiremos al final del fichero la siguiente linea, y reiniciamos rtorrent, en el caso de no tener el script que puse en el post anterior, reiniciarlo como lo soléis hacer, la segunda linea es para que cargue los plugins de rutorrent cada vez que arranca rtorrent, es opcional, fijaros en las rutas y en el usuario que debe ser aquel con el que arranques rtorrent

scgi_port = 0.0.0.0:5000
execute = {sh,-c,/usr/bin/php /var/www/rutorrent/php/initplugins.php usuario &}
sudo /etc/init.d/rtorrentInit.sh restart

Ahora vamos a por el nginx, primero vamos a poner los parámetros de comunicación de scgi. Iremos y pegaremos lo siguiente

sudo vim /etc/nginx/scgi_params

scgi_param      REQUEST_METHOD          $request_method;
scgi_param      REQUEST_URI             $request_uri;
scgi_param      QUERY_STRING            $query_string;
scgi_param      CONTENT_TYPE            $content_type;

scgi_param      DOCUMENT_URI            $document_uri;
scgi_param      DOCUMENT_ROOT           $document_root;
scgi_param      SCGI                    1;
scgi_param      SERVER_PROTOCOL         $server_protocol;

scgi_param      REMOTE_ADDR             $remote_addr;
scgi_param      REMOTE_PORT             $remote_port;
scgi_param      SERVER_PORT             $server_port;
scgi_param      SERVER_NAME             $server_name;

Debemos activar el site, para que nginx lo haremos haciendo un ln del fichero rturront


ln -s /etc/nginx/sites-available/rutorrent /etc/nginx/sites-enabled/rutorrent

Y ahora vamos a configurar el nginx para que se entienda con todo. En el fichero de configuración  de nuestro site, añadimos.


sudo  vim /etc/nginx/sites-available/rutorrent
server {
 listen 80;
 root /var/www;
#client_max_body_size 4096M;
 listen 443 ssl;
location /rutorrent {
index index.php index.html;
auth_basic "Restricted";
auth_basic_user_file /var/www/rutorrent/.htpasswd;
}

location /RPC2 {
include /etc/nginx/scgi_params;
scgi_pass 127.0.0.1:5000;
}

location ~ .php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include /etc/nginx/fastcgi_params;
try_files $uri =404;
fastcgi_param SCRIPT_FILENAME /var/www/$fastcgi_script_name;

}

location ~/.ht {
deny all;
}

Por ultimo añadiremos si quereis un password a través de .htpasswd, para que nos lo pida cuando accedamos a la web.

Debemos instalar el paquete apache2-utils, para disponer de la opción

htpasswd -cb .htpasswd usuario contraseña

Y copiamos el fichero que genero en la ruta donde le dijimos al nginx

cp -a  .htpasswd /var/www/rutorrent/.htpasswd

Le damos permisos a nginx

sudo chown -R www-data:www-data /var/www/rutorrent

Recargamos el nginx para la nueva configuración.

sudo /etc/init.d/nginx reload

Y accedemos por web http://ip/rutorrent

Ale a disfrutarlo

22 mar

Instalación de rtorrent en debian.

Bueno hoy voy a explicar como instalar el cliente de torrent, rtorrent, si que es verdad que hay miles de manuales para instalar transsmision, pero la idea de utilizar este cliente que es muy muy liviano y funciona a las mil maravillas, sobretodo en máquinas de poca potencia como rasppery, os diere que se saque esta solución es para consola…(vivamos en la consola :)) más adelante os explicare como integrarlo con rutorrent + nginx.

rtorrent

Es un cliente de torrent única y exclusivamente por consola, libtorrent es el núcleo, hecho en c++ y esta pensado para dar gran rendimiento y muy poca carga, genial para la situación actual.

Esta es la pagina del proyecto http://libtorrent.rakshasa.no/ y os diré que la documentación es sublime.

Primero de todo vamos actualizar el sistema operativo, todos los comandos están basados en debian.


sudo apt-get update; sudo apt-get upgrade

Ahora instalamos los paquetes necesarios

sudo apt-get install rtorrent screen

Utilizaremos el usuario normal para arrancar el rtorrent, así pues vamos a configurar el cliente, tener en cuanta que como supongo que tenéis un HD externo para las descargas, os recomiendo que lo formareis en ext3 o ext4, ya que el ntfs le sienta bastante mal, por la falta de recursos.

La configuración de rtorrent se hace en el fichero ~/.rtorrent.rc, en la home de nuestro usuario, este fichero tiene muchas opciones, como siempre os pongo las que yo utilizo que va bastante bien, podéis bajaros la plantilla de a rtorrent y trabajar sobre ella, lo puse en doc, ya que el worpress no me deja subir ficheros .rc, pero cambiarle la extensión.

vim  ~/.rtorrent.rc

Numero máximo y mínimo de peers

min_peers = 40
max_peers = 52

Same as above but for seeding completed torrents (-1 = same as downloading)

min_peers_seed = 10
max_peers_seed = 20

Maximum number of simultanious uploads per torrent.

max_uploads = 10

Velocidad de subida y bajada, es muy interesante el tema de “schedule”, ya que ahí podremos definir durante que horas limitaremos la descarga y durante que horas dejaremos que baje y suba a todo lo que pueda.

download_rate = 300
upload_rate = 50
schedule = throttle_1,01:00:00,24:00:00,download_rate=0
schedule = throttle_2,10:00:00,24:00:00,download_rate=300

Directorio donde irá descargando los archivos hasta que estén completos y donde irá grabando el control de la sesión de la bajada del torrent

directory = /mnt/descargas/incomplete
session = /mnt/descargas/incomplete

Esta linea esta muy bien, le diremos que nos mueva a otra carpeta aquellos torrent que hayan finalizado, la sintaxis de la linea es un poco compleja, pero si os fijáis rtorrent utiliza métodos para trabajar y hay miles que podemos encontrar en su pagina web, pero poder hacer cosas muy muy chulas.

system.method.set_key = event.download.finished,move_complete,;execute=mv,-u,$d.get_base_path=,/mnt/descargas/descargados;

Vamos a crear el directorio donde el irá mirando si existen torrents nuevos, en el caso de encontrar lo añadirá automáticamente.

schedule = watch_directory,5,5,load_start=/mnt/descargas/torrent/*.torrent

También vamos a poner un control, para evitar que nos quedemos sin espacio en el disco, en este caso, parara todos los torrents cuando el espacio sea inferior a 100mb

schedule = low_diskspace,5,60,close_low_diskspace=100M

También podemos controlar el ratio de envío, partiendo de la base que debemos compartir ya que es la base del sistema (COMPARTIR!!), yo dejo las descargas de las isos de linux, durante largas semanas para que otros se puedan beneficiar, pero bueno podemos poner un limite, para que rtorrent pare cuando llegue a unos valores.

Creo que siempre es bueno no quitar el fichero hasta conseguir un ratio de 2.0, así que esta es la linea para conseguir eso.

schedule = ratio,60,60,"stop_on_ratio=200,200M,2000";

Animo, que ya falta poco…

Le vamos a decir en que puertos tiene que escuchar, y claro esos puertos deben estar abiertos en el route

port_range = 49151-49151

Podemos decirle que verifique los archivos descargados a través de hash.

check_hash = yes

Y por ultimo los logs, para ver que esta haciendo y si da algún fallo.

log.execute=/mnt/usb/rtorrent.log

Bueno pues grabamos y ya tenemos el fichero.

Ahora vemos a utilizar screen, para lanzar el rtorrent.

Comandos básicos de screen.

Para abrir un terminal nuevo con screen simplemente debemos teclear screen, se nos muestra un mensaje, pulsamos enter y a continuación se nos abre el terminal de toda la vida.

La siguiente combinación de teclas para “desengancharnos” del terminal: CTRL-A + d. Es decir, pulsamos CTRL y A al mismo tiempo y a continuación D. Y se mos mostrará el mensaje “Detached”.

Para “reengancharnos” de nuevo a nuestro terminal mediante el comando screen -r que hace un reattach al terminal

Múltiples terminales con screen
Podemos abrir varios terminales simultáneamente con screen pero a la hora de “reengacharnos” con screen -r nos pedira el identificador del terminal además de mostrarnos una lista de PIDs asociados. Para “reengancharnos” a un terminal concreto debemos teclear screen -r PID, donde PID es el identificador del terminal que nos interesa.

Cerrar terminales
Para cerrar un terminal basta con ejecutar exit una vez estemos enganchados al terminal o bien teclear la combinación CTRL-A + C.

screen

Ahora ejecutamos rtorrent

./rtorrent

Y veremos algo así

Captura de pantalla de 2013-03-22 13:23:52rtorrent
Por supuesto no tendremos nada bajando, si colocamos algun torrent en nuestra carpeta watchdir, los veremos aparecer.

Comandos básicos
http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide

Con esto ya tendremos nuestro rtorrent corriendo, para dejarlo en “segundo plano” haremos CTRL-A + d.

Si queremos que arranque automáticamente con el sistema podemos utilizar este rtorrentInit (como el otro caso, es un fichero de arranque tiene la extensión doc, gracias a wordpress), donde veremos modificar las lineas:


user=usuario

logfile=/mnt/descargas/rtorrentInit.log

Lo copias en /etc/init.d/ y lo añadimos al arranque con

update-rc.d mydaemon defaults

Ale a disfrutarlo!!