20150913

Configurando un servidor de cómics en una Raspberry Pi

Para los que tenemos una colección más o menos grande de cómics digitales, debido al tamaño que suelen tener los archivos, es complicado tener acceso a todo desde aplicaciones móviles (ej: iPad), ya que no caben todos en la memoria. Sin embargo, desde hace unos meses, existe una solución muy interesante: ComicStreamer
Se trata de un proyecto bastante  interesante que permite tener un servidor de streaming de cómics. ¿Qué quiere decir esto? Que permite visualizar cómics digitales (CBR, CBZ, PDF) sin tener que descargarlos enteros en donde los estés leyendo, bien con un navegador web (Windows, Mac, Linux, iOS, Android), o bien con alguna aplicación compatible (“Chunky Comic reader” en el iPad). El servidor envía sólo las páginas que estás leyendo, en vez del fichero de cómic entero.
Además, si la biblioteca tiene debidamente etiquetados los ficheros, quedan clasificados y se puede hacer búsquedas por serie, autor, personajes, ubicaciones, arco argumental, etc.
Así, es posible tener toda la biblioteca en un lugar centralizado en tu casa y luego ver los cómics desde el resto de aparatos, sin tener que andar copiando un sólo fichero entre ellos.
Aunque la descarga oficial sólo trae el programa preparado para Mac o Windows, es relativamente fácil hacer que funcione en cualquier cosa que tenga soporte para el lenguaje Python.
Estos son los pasos para hacer que funcione en una Raspberry Pi con Arch Linux como sistema operativo.


Paquetes a instalar


 - Python 2, libwebp, Virtualenv para Python 2, unzip
 - (Recomendables) Avahi y nss-mdns, configurados que el servidor se anuncie de forma automática en la red local
 - (Sólo durante la instalación, luego se pueden borrar) make, libtool ,gcc, binutils, libmpc, wget, gc, guile, libatomic_ops

En el caso de Arch Linux, se pueden instalar fácilmente usando:

> pacman -S —-needed …

Preparación del entorno Virtualenv


- Elegimos un lugar (directorio) donde ubicar todos los ejecutables (por ej: /var/opt/comicstreamer) y creamos un entorno virtual:
> mkdir -p /var/opt/comicstreamer/
> virtualenv2 /var/opt/comicstreamer/
> source /var/opt/comicstreamer/bin/activate

 - Instalamos los paquetes de Python necesarios en el entorno virtual:
> pip install tornado sqlalchemy watchdog python-dateutil pillow configobj natsort paver unrar PyPDF2 
> pip install --allow-external pybonjour --allow-unverified pybonjour pybonjour


- Obtenemos la última versión de Comicstreamer y la descomprimimos, bien del código original, bien de alguno de los derivados que han ido apareciendo (a mí me gusta el de davide-romanini porque las páginas cargan más rápido y tiene algunas mejoras interesantes):
> mkdir /var/opt/comicstreamer/master
> cd /var/opt/comicstreamer/master
> wget https://github.com/beville/ComicStreamer/archive/master.zip
> unzip master.zip
> rm -f master.zip
> mv ComicStreamer-master/ master


- Si se trata de alguna de las versiones más recientes, podemos compilar las librerías de unrar:
> paver libunrar

- Borramos ficheros que no son necesarios:
> cd /var/opt/comicstreamer/master
> rm -rf libunrar/unrar libunrar/unrarsrc-5.3.2.tar.gz 
> rm -rf master/mac master/windows


Configurando el servidor para que se inicie de forma automática como servicio de systemd


- Creamos usuario y grupo para la ejecución, y le damos permisos adecuados:
> groupadd --system comicstreamer
> useradd --system -c 'ComicStreamer daemon user' -g comicstreamer -d /var/opt/comicstreamer -s /bin/false comicstreamer
> chown -R comicstreamer:comicstreamer /var/opt/comicstreamer/

- Creamos el fichero de configuración del servicio, /etc/systemd/system/comicstreamer.service:
[Unit]
Description=ComicStreamer Service
Requires=network.target local-fs.target remote-fs.target
After=network.target local-fs.target remote-fs.target

[Service]

User=comicstreamer
ExecStart=/bin/bash -c 'source /var/opt/comicstreamer/bin/activate && /var/opt/comicstreamer/master/comicstreamer && deactivate'

[Install]

WantedBy=multi-user.target

- Activamos el servicio y lo iniciamos:
> systemctl daemon-reload
> systemctl enable comicstreamer
> systemctl start comic streamer

Si hemos seguido bien todos los pasos, en la dirección http://nombredelaraspberry:32500 debería estar disponible la página web de comicstreamer


No hay comentarios:

Publicar un comentario en la entrada