Cómo instalar Calibre-web con todas las funciones en nuestro NAS

Cómo instalar Calibre-web con todas las funciones en nuestro NAS

Presentación y para que usamos este programa

En este video vamos a instalar y configurar calibre-web para usar todas sus funciones.

Todos usamos calibre para tener nuestra biblioteca y convertir libros. ¿Sabés que todo eso lo puedes hacer desde docker en tu NAS?

Vamos a configurar este contenedor para que sea nuestra biblioteca digital de libros electrónicos, para que podamos subir libros, que podamos hacer la conversión desde el mismo contenedor y además vamos a introducir los datos necesarios para poder enviarnos los libros directamente a nuestro libro electrónico si tenemos un kindle de los no muy antiguos.

¿qué necesitaremos?

  • Un nas o una maquina dónde podamos usar docker
  • El archivo docker-compose dónde estará la configuración del contenedor
  • un script que vamos a llamar calibre.sh (gracias Martín Huerta) dándole permisos desde la terminal
  • el archivo vacío de la base de datos necesaria
  • crear el proxy inverso si lo vamos a exponer a internet

Docker-compose

En este tutorial, vamos a ejecutar el docker compose desde portainer porque me resulta más fácil, aunque podemos hacerlo directamente desde container manager en dsm

Desde portainer

Accedemos a nuestro portainer y vamos al apartado de stacks y pulsamos sobre add stack

le damos un nombre en minúsculas y sin caracteres especiales

Vamos a la parte del cuadro de edición y pegamos el contenido del archivo que os dejo a continuación

services:
    linuxserver:
        container_name: calibre-web
        environment:
            - PUID=1026
            - PGID=100
            - TZ=Europe/Madrid
            - DOCKER_MODS=ghcr.io/linuxserver/mods:universal-calibre-v7.16.0
            - OAUTHLIB_RELAX_TOKEN_SCOPE=1
        ports:
            - '8286:8083'
        volumes:
            - '/volume1/docker/calibre-web:/config'
            - '/volume1/ebooks:/books'
            - '/volume1/docker/calibre-web/custom-files:/custom-cont-init.d:ro'
        restart: always
        image: lscr.io/linuxserver/calibre-web

Antes de ejecutar, debemos ir a nuestro DSM y crear las carpetas que hemos mapeado en el docker-compose

Para ello, entramos en DSM, vamos a File Station y si tenemos instalado container Station, navegamos a la carpeta docker, pulsamos en el botón Crear y creamos una nueva carpeta a la que le damos como nombre calibre-web para que coincida con la estructura del docker-compose.

Una vez dentro de esta carpeta, repetimos la operación de crear una nueva carpeta y le damos como nombre custom-files para que coincida con la estructura del docker-compose.

Cómo no tenéis la carpeta ebooks, iremos a panel de control y de ahí a la pestaña de carpetas compartidas y pulsaremos en el botón Crear y después en crear una carpeta compartida.

Le damos el nombre de books para que coincida con la estructura del doker-compose. En ubicación, la ponemos en el volumen 1 para que coincida con el docker-compose y pulsamos en siguiente dejando las demás opciones como están.
En la siguiente pantalla, elegid lo que queráis pero yo en mi caso la dejaré en omitir y pulsamos en siguiente.
En la siguiente ventana no elijo ninguna opción y pulso en siguiente.
En la siguiente ventana de resumen, pulsamos en siguiente.
Y ya seleccionamos los permisos de lectura/escritura de nuestro usuario y pulsamos en siguiente.

Ya veremos la carpeta creada y el contenedor no nos dará ningún problema con las rutas de los archivos

Dentro de la carpeta /volume1/docker/calibre-web/custom-files subimos el archivo calibre.sh, pulsando en el botón cargar y buscandolo en nuestro equipo. Este archivo es un script necesario para poder convertir libros. Tendremos que darle permisos de ejecución desde el terminal (lo haremos luego).

Para averiguar nuestro PUID y nuestro PGID, desde el panel de control accedemos a terminal y SNMP. Marcaremos el check de habilitar servicio SSH y pulsamos en el botón aplicar de la esquina inferior derecha.

Ahora iremos a una ventana de terminal e introduciremos el siguiente comando para acceder por ssh al nas

ssh tuusuario@tuipdelnas -p 22

# debe quedar así por ejemplo
ssh [email protected] -p 22

Nos pedirá nuestro password y una vez lo introduzcamos, estaremos dentro de nuestro nas.

Una vez accedido escribiremos el siguiente comando

id

Y pulsamos intro y nos dará una linea con nuestro números de PUID y PGID necesarios.

Si seguimos en el terminal, tendremos que darle permisos de ejecución al script creado. Para ello escribimos en el terminal el comando

cd /volume1/docker/calibre-web/custom-files/

pulsamos INTRO
y luego escribimos

sudo chmod +x calibre.sh

introducimos nuestro password de acceso al nas y ya estarían autorizados los permisos de ejecución.

Conseguir el archivo de base de datos necesario

Aquí para tener cero problemas, os recomiendo que os instaleis inicialmente la app calibre y que le digais el el momento de la configuración que os instale la librería en la carpeta books que hemos creado antes.

Así nos ahorramos muchos disgustos de permisos que pueden hacer que el contenedor no nos funcione correctamente.

Una vez hecho esto podéis borra la app de escritorio.

Una ves hecho todos estos pasos, podemos volver a portainer y pulsar sobre el botón deploy the stack

Os debe dar que el contenedor se ha creado correctamente.

Acceder a calibre-web y primeros pasos

Para acceder a nuestro contenedor, vamos a un navegador e introducimos

http://ipdelnas:puertoDelDocker

# por ejemplo

http://192.168.100:8286

# el puerto en este ejemplo es 8286 porque es el que hemos elegido en el docker-compose. Si has elegido otro debes poner el que hayas elegido.

Los datos de acceso iniciales son
Usuario: admin
Password: admin123

Una vez dentro nos pide que le digamos dónde está el archivo de base de datos necesario, así que vamos navegando hasta la ruta books que es dónde la pusimos. Pulsamos en Save y nos dará la confirmación en un mensaje verde.

Podemos configurar el idioma de la app, pulsando en el botón Admin pero el que tiene el icono de usuario arriba a la derecha, luego pulsamos sobre idioma y seleccionamos Español en mi caso. Guardamos los cambios.

Entramos en el libro que tenemos pulsando en su portada. Pulsamos sobre editar metadatos y nos fijamos debajo de la portada que no nos ofrece ninguna opción.

Habilitar la subida de libros

Para configurar la conversión de libros, vamos al botón Admin pero el del simbolo de ajustes.
Luego pulsamos en el botón editar la configuración básica, extendemos el menú de Configuración de características y una vez desplegado, marcamos el check de permitir subidas
Al marcarlo, nos saldrá un listado de formatos de libros que nos permite subir y que son los más habituales.

Pulsamos sobre el botón guardar

Para habilitar al usuario a poder subir archivos, pulsando en el botón Admin pero el del simbolo de ajustes, luego pulsamos en edit users y marcamos el check de subir archivo. Guardamos los cambios.

Si pulsamos sobre libros, vemos que se nos ha habilitado un botón en el menú superior a la derecha que nos dice subir libro.

Pulsamos y seleccionamos el libro que queremos subir y se nos añade a nuestra biblioteca.

Habilitar la edición de formato de archivo de libros

Para configurar la conversión de libros, vamos al botón Admin pero el del simbolo de ajustes.
Luego pulsamos en el botón editar la configuración básica, extendemos el menú de binarios externos y una vez desplegado, hacemos los siguientes cambios:
- En Path to Calibre Binaries escribimos /usr/bin
- En Ruta para Kepubify E-Book Converter escribimos /usr/bin/kepubify
Guardamos estos cambios y nos debe salir una barra verde confirmando correctamente estos cambios.

Volvemos a entrar en el libro que tenemos pulsando en su portada. Pulsamos sobre editar metadatos y nos fijamos debajo de la portada que algo ha cambiado, nos deja convertir el formato del libro.


En el primer desplegable, elegimos el formato de origen, en este caso de ejemplo en EPUB.
En el segundo desplegable, elegimos el formato de salida, en este caso de ejemplo en MOBI (antiguo formato de los kindle)
Pulsamos en convertir libro y tras un periodo de tiempo, ya lo tendremos convertido.

Para ver si ha acabado, volvemos a pulsar en la portada del libro y si pulsamos sobre el botón de descargar, veremos los dos formatos.

Enviarnos los libros directamente a nuestro kindle

Amazon nos facilita una dirección de correo desde la que podemos enviarnos libros desde el correo electrónico.

Esta función podemos habilitarla pulsando en el botón Admin pero el del simbolo de ajustes, luego pulsamos en edit users e introducimos nuestra dirección del kindle en en campo eReader Email

Vamos al menú anterior y nos vamos a Ajustes del servidor de correo electrónico y pulsamos sobre el botón de Cambiar parámetros del correo

Configurar contraseña de aplicación correo GMAIL

Servidor SMTP: smtp.gmail.com
Puerto SMTP: 587
Encriptado: STARTTLS
Login SMTP: tu correo de gmail
Contraseña: la contraseña de aplicación generada
Desde el correo: tu correo de gmail

Creación del proxy inverso

Primer paso importante y fundamental, en el router, hay que abrir el puerto 80 y 443 a la IP del NAS, tanto en origen como en destino. Como cada router es diferente no puedo mostrar cómo se hace en este video.

IMPORTANTE
Si estas tras CGNAT no podrás abrir puertos, deberás hablar con tu operador de internet.

Puedes ver todo el proceso aqui

Dentro de DSM vamos a panel de control y después en acceso externo buscaremos la pestaña DDNS

Pulsaremos en el botón agregar y en la ventana que se abre iremos rellenando los siguientes datos:

  • Proveedor de servicios : Synology
  • Nombre del host : nombre identificativo.synology.me
  • Cuenta Synology: Iniciaremos sesión en la ventana emergente con nuestra cuenta Synology. Los que tengan Xpenology no podrán hacerlo
  • Dirección externa IPV4 e IPV6 dejamos igual y pulsamos en Probar conexión

Nos saldrá un check verde

Luego vamos a panel de control y después en seguridad buscaremos la pestaña certificado

Pulsaremos en el botón agregar y en la ventana emergente, dejamos seleccionado añadir un nuevo certificado y pulsamos en siguiente.

En la siguiente ventana, damos el nombre de wildcard al certificado y marcamos el check de obtener un certificado let`s encrypt y pulsamos en siguiente

En la siguiente ventana rellenamos los datos de la siguiente forma:

  • Nombre de dominio : El DDNS creado anteriormente (en nuestro caso bilitovdsm.synology.me)
  • Correo electrónico : nuestro correo electrónico donde recibiremos las notificaciones de caducidad
  • Nombre alternativo de sujeto *.nuestroddns (en nuestro caso *.bilitovdsm.synology.me)

Pulsamos en finalizado y debemos verlo en el listado

Luego vamos a panel de control y después en Portal de inicio de sesion buscaremos la pestaña avanzado y pulsamos en proxy inverso.

En la ventana que se nos abre pulsamos sobre crear y rellenamos los siguientes campos:

  • Nombre del proxy inverso : calibre

En Origen

  • Protocolo : seleccionamos https
  • nombre del host : calibre.nuestroddns (en nuestro ejemplo calibre.bilitovdsm.synology.me)
  • puerto : ponemos 443
  • marchamos el check de habilitar HSTS

En Destino

  • Protocolo : Dejamos HTTP
  • nombre del host : Ponemos la ip del nas
  • puerto : ponemos 80

Pulsamos en Guardar

Luego vamos a panel de control y después en seguridad buscaremos la pestaña certificado de nuevo.

Seleccionamos nuestro certificado wildcard y pulsamos sobre el botón configuración

Buscamos el proxy inverso creado y en el desplegable, lo abrimos y seleccionamos el certificado wildcard que hemos creado.

Vamos a un navegador e introducimos https://calibre.bilitovdsm.synology.me

Debemos acceder sin ningún problema.

Mi nombre es David Rodríguez, apasionado por un millón de cosas que lleven placas y chips dentro. Puedes encontrarme como https://mas.to/@_Bilito en Mastodon y en grupo de Telegram de Synology NAS https://t.me/synologyNAS
Tengo un canal de youtube que complementa al blog https://www.youtube.com/@_Bilito y que me harías un gran favor si te suscribes.