Cómo tener tu biblioteca digital con Calibre Web y Docker.

Cómo tener tu biblioteca digital con Calibre Web y Docker.

En este artículo, te voy a mostrar cómo desplegar Calibre Web, esta alternativa al popular Calibre Desktop pero desde la cual puedes acceder desde cualquier lado.

Nunca tuve mucha constancia para mantener mi librería digital con Calibre Desktop, cada tantos años me mudo de equipo y siempre me sucede, que me olvido de mover esa biblioteca y la misma se pierde.

Si, claro, tengo los libros en un backup pero, la biblioteca como tal, la metadata de los libros, el orden y demás, eso se pierde todo.

Por estos días, estoy leyendo mucho más con el Kindle (El mejor invento del mundo) y dije, voy a armar esa biblioteca de nuevo y recordé que hace mucho habia leido algo de Calibre Web así que decidí desplegar una instancia y probar a ver que onda.

Si lo tengo que comparar con la versión Desktop de Calibre, Calibre Web está, de alguna manera más recortado en opciones, pero con las que tiene, para mi son más que suficientes.

Te invito a que leas más sobre el proyecto y veas si se adapta a lo que necesitas, en mi caso particular, me soluciona el problema de la persistencia de la biblioteca a través de varios dispositivos y me permite enviar los libros que quiero al Kindle mediante la dirección de correo electrónico asociada al mismo.

janeczku/calibre-web
:books: Web app for browsing, reading and downloading eBooks stored in a Calibre database - janeczku/calibre-web

Desplegando Calibre Web

El despliegue de Calibre Web es bastante sencillo, hay un docker-compose dando vueltas y es el que vamos a usar.

La imagen de Docker Hub que vamos a usar es esta la siguiente:

Docker Hub

El docker-compose, es este:

version: "2.1"
services:
  calibre-web:
    image: linuxserver/calibre-web
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/Montevideo
      - DOCKER_MODS=linuxserver/calibre-web:calibre
    volumes:
      - /home/nacho/calibre/config:/config
      - /home/nacho/calibre/books:/books
    ports:
      - 8083:8083
    restart: unless-stopped

Como ven, es bastante sencillo, lo único "serio" a tener en cuenta es que debemos crear dos volúmenes o como es mi caso, bindear dos directorios.

También hay que tener en cuenta otra cosa, cuando hacemos el despliegue, debemos tener un archivo de base de datos vacío de antemano, ya que el despliegue, ni el setup de Calibre Web lo genera, así que lo debemos descargar por otro lado. Esto sucede porque la idea principal de esta solución es que sea una extensión de Calibre Desktop y lleves ese archivo desde ahí. Como no es mi caso, debemos conseguir uno.

Para hacerles la vida más fácil, acá les dejo un metadata.db vacío para que pongan en el volumen books, ya que ahí es donde se guardará toda la base de datos de nuestros libros.

Una vez que tenemos editado el compose de acuerdo a nuestras preferencias, vamos a ejecutar lo siguiente:

$ docker-compose up -d

La devolución debería ser algo como esto:

Creating network "calibre-web_default" with the default driver
Pulling calibre-web (linuxserver/calibre-web:)...
latest: Pulling from linuxserver/calibre-web
535c8ed3b1af: Already exists
ae3b337f1695: Already exists
e5d2bf9d176a: Already exists
9f2240393ace: Already exists
f24bcc74ac70: Pull complete
27efdfcac130: Pull complete
Digest: sha256:be9512dcc11684a967b7ed998623771fdcef5e0b3ddc3716769338d34d688c09
Status: Downloaded newer image for linuxserver/calibre-web:latest
Creating calibre-web ... done

Si todo salió como se espera, si tiramos un docker ps, deberíamos ver lo siguiente:

CONTAINER ID        IMAGE                     COMMAND                  CREATED             STATUS                          PORTS                    NAMES
e9e6488498ca        linuxserver/calibre-web   "/init"                  51 seconds ago      Up 49 seconds                   0.0.0.0:8083->8083/tcp   calibre-web

Tengan en cuenta que el primer arranque demora un poco, porque hace descarga de paquetes y actualizaciones. Según mi "ojímetro", demora unos 3 minutos.

Para comprobar que terminó, podemos ejecutar lo siguiente:

docker logs <id-contenedor>

El resultado, si es que esta todo bien, debería ser algo como esto:

Processing triggers for libc-bin (2.27-3ubuntu1.2) ...
[cont-init.d] 60-calibre-config: exited 0.
[cont-init.d] 99-custom-scripts: executing...
[custom-init] no custom files found exiting...
[cont-init.d] 99-custom-scripts: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.

De esta manera, está desplegado nuestro Calibre Web. Ahora, es hora de configurar algunas cosillas.

Configuración

Una vez desplegado, apuntamos nuestros navegadores hacia la IP de nuestro Docker Host, en mi caso, como estoy corriendo esto en Docker Desktop, la URL para acceder es algo así: http://localhost:8083

Lo primero que veremos será esto, donde, en donde dice configuración, debemos tipear "/books" y hacemos un clic en "guardar".

Pero nos vamos a encontrar con este error:

Para corregir esto, debemos descargar en nuestra carpeta "books" este archivo (El metadata.db), reiniciar el contenedor y probar de nuevo.

$ docker restart <id-contenedor>

Ahora cuando vayamos a la URL, ponemos la ruta /books y cuando hagamos un clic en guardar, nos dirá que la configuración ha sido actualizada.

Lo siguiente es autenticarse, el usuario y contraseña por defecto es admin/admin123 y listo. Con esto, ya tenemos corriendo nuestra instancia de Calibre Web, ahora solo resta comenzar a subir los libros, cambiar la contraseña por defecto y configurar un SMTP para poder enviar por correo los libros a nuestro Kindle.

Para ir cerrando

Para mi Calibre Web es una solución definitiva para mantener mi biblioteca digital, en la nube, accesible desde cualquier dispositivo y con la capacidad de mandar cualquier libro que guarde ahí a mi Kindle con tan solo un par de clics.

Les dejo el repo donde está alojada toda esta configuración, junto con los archivos necesarios:

xe-nvdk/awesome-docker
Repository to save docker recipes. Mostly docker-compose format. - xe-nvdk/awesome-docker

Contame ¿Qué te pareció? ¿Lo usas? ¿Cómo fue el despliegue de Calibre Web? ¿Tenés alguna otra herramienta que recomendar?