Antes de empezar vamos a resumir un poco todo lo que hemos hecho hasta ahora en nuestro pequeño servidor Linux:
- Parte 1: Hemos instalado el sistema operativo a una Raspberry
- Parte 2: Hemos explicado qué es Docker y sus componentes, y hemos instalado en nuestro equipo Docker y Docker compose.
- Parte 3: Hemos instalado nuestro primer Docker: Pi-hole
- Parte 4: Hemos explicado unos cuantos comandos útiles para resolver problemas y gestionar nuestros Dockers.
- Parte 5: Le hemos instalado un VPN a nuestra Raspberry (Wireguard) con un gestor web de usuarios incluído
- Parte 6: Hemos aprendido a desplegar Dockers descargados de internet por nuestra cuenta, y con la excusa hemos desplegado aMule y Transmission.
- Parte 7: Hemos instalado Plex para tener una especie de Netflix personal.
- Parte 8: Hemos aprendido todo lo referente a servidores web instalados sobre docker.
- Parte 9: Hemos instalado Proxy Nginx Manager que nos servirá de proxy en los siguientes artículos.
- Parte 10: Hemos instalado Navidrome para tener una especie de Spotify personal.
- Parte 11: Hemos aprendido a duplicar y hacer copias de seguridad de nuestros Dockers.
- Parte 12: Hemos instalado Nextcloud para crearnos una nube privada
- Parte 13: Hemos instalado Vikunja para tener un gestor de tareas personal.
Y aún seguimos instalando más y más cosas interesantes. Ahora toca culturizarse un poco. Vamos a instalar una herramienta de gestión de libros electrónicos a la que vamos a poder acceder a través de internet, invitar a nuestros amigos y familia y con la que podemos tener nuestros libros tremendamente organizados y ordenados. Vamos a instalar Calibre web.
¡Eh! ¡Eso de Calibre a mi me suena! Cuando me compré el lector de libros digitales creo que lo instalé en el ordenador.
Efectivamente hay una aplicación para escritorio llamada Calibre. Lo que vamos a instalar es algo así como la parte Web de ese software. En todo caso la aplicación Web y la de escritorio están enfocadas de forma distinta. La aplicación de escritorio tiene más funcionalidades que la versión Web, pero la versión Web permite acceso remoto y es multidispositivo, mientras que la aplicación de escritorio sólo puede vivir en el dispositivo en la que está instalada.
Vamos a seguir en esta instalación el mismo esquema de siempre, y os adelanto que es una instalación de las sencillitas, así que a estas alturas no debería complicarse. Vamos allá.
1- Creamos la estructura de carpetas en el directorio «docker».
En todos los tutoriales anteriores usámos una carpeta para almacenar volúmenes y configuraciones de nuestros dockers. La ruta que tenía era ésta.
/home/<tu_usuario>/docker
(Si no la tenéis creada, podéis crearla con el comando sudo mkdir docker
)
En este tutorial la seguiremos usando (vamos a ser muy muy ordenados). Vamos a crear la estructura de carpetas que necesita Calibre para almacenar la información, así que vamos a teclear los siguientes comandos para ir a la ruta de esa carpeta y crear ahí todo lo que necesitamos.
cd docker
mkdir calibre
cd calibre
mkdir books && mkdir config
Como os estaréis suponiendo, la carpeta «books
» contendrá los libros que vamos a almacenar y la carpeta «Config
» la configuración que necesita calibre para funcionar.
2- Creamos el archivo «metadata» para la base de datos.
Antes de ponernos a crear nada debéis saber que, al igual que la mayoría de dockers que crean una página web, este proyecto también usa una base de datos aunque usa una muy muy simple. El tipo de base de datos que usa es «SQLite» y en ella almacena la información de la biblioteca de libros electrónicos. SQLite es una base de datos ligera, sin servidor, que se almacena en un solo archivo. No es una base de datos ideal para proyectos grandes, pero para nuestra biblioteca será más que suficiente.
El problema es que vamos a tener que darle al docker un archivo de base de datos vacío para que Calibre almacene en él toda la información que necesita. El archivo os lo voy a poner en esta dirección.
http://flopy.es/uploads/metadata.db
Este archivo hay que ponerlo en la carpeta «books
» que acabamos de crear. Pensad un poco cómo lo podríais subir y luego seguid leyendo para ver qué solución os doy yo.
Una forma de subir ese archivo sería descargarlo en el ordenador desde el que estás leyendo esto, conectarse a la raspberry con un programa que permita hacer transferencias mediante el protocolo SSH (Como WinSCP o CyberDuck) y subir el archivo a esa carpeta. Pero como a nosotros nos gusta la aventura y todo lo que no sea usar un terminal de texto nos parece tremendamente snob, vamos a hacer la descarga directamente en nuestra raspberry con estos comandos:
cd books
wget http://flopy.es/uploads/metadata.db
Con esto tendremos el archivo copiado en esa carpeta.
3- Creamos el archivo de configuración de Docker Compose
¿Qué os voy a decir de esta parte que no sepáis ya? Como estábamos dentro de la carpeta books
, vamos a subir un nivel hacia arriba para situarnos en la carpeta calibre y allí usaremos nano para empezar a editar el archivo de docker-compose.
cd ..
sudo nano docker-compose.yml
Dentro de ese archivo, pondremos el siguiente código sin cambiar nada.
version: "2.1"
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Europe/Madrid
- DOCKER_MODS=linuxserver/mods:universal-calibre
volumes:
- $DOCKERDIR/calibre/config:/config
- $DOCKERDIR/calibre/books:/books
ports:
- 8083:8083
restart: unless-stopped
Simplemente guardamos cambios con Control +O
y salimos de nano con Control +X
.
4- Creamos variables de entorno.
En la misma carpeta creamos el archivo de variables de entorno, que seguro que si miráis el archivo de configuración de docker-compose os imaginaréis que será muy simple. Para crearlo teclearemos sudo nano .env y le ponemos este contenido.
DOCKERDIR=/home/<tu_usuario>/docker
Por supuesto no os olvidéis de cambiar <tu_usuario>
por vuestro usuario de la Raspberry (para que la ruta hacia la carpeta docker
sea la correcta). Después de guardar los cambios, vamos a cambiar los permisos a este archivo para darle seguridad. Teclearemos este comando en el terminal para impedir que nadie excepto un usuario con privilegios de root pueda editarlo.
sudo chmod 600 .env
5- Desplegamos Calibre Web.
Toca desplegar la aplicación. Para ello ejecutamos esto desde el terminal.
sudo docker-compose -p "calibre" up -d
Después de terminar el despliegue de Calibre Web, tendrás que esperar unos tres minutos hasta que la página web esté realmente disponible, así que sé paciente. No es un servicio que se active nada más desplegarse.
6- Creamos un proxy para acceder a Calibre Web a través de un dominio.
En la parte 9 de esta serie de tutoriales hemos instalado un proxy en nuestro host. Lo usaremos para poder acceder a nuestro recién instalado Calibre Web a través de un dominio propio. (Supongo que también tenéis un dominio y lo habéis configurado correctamente para que se dirija a vuestra ip pública, tal y cómo lo hemos visto en ese artículo).
Como siempre, en Nginx Proxy Manager nos vamos a «hosts», pulsamos en «Proxy Hosts» y luego en el botón que pone «Add Proxy Host».
Ahora simplemente cubrimos los datos.
- Domain names: ponemos un subdominio del dominio que tenemos contratado
- scheme: http
- Forward Hostname / IP: ponemos la ip local del host dónde hemos instalado Calibre Web
- Forward Port: 8083
Guardamos cambios y pulsamos los tres puntitos que hay al final de la línea del proxy que acabamos de hacer para luego pulsar el botón «Edit».
Lo que haremos será añadir la configuración para que el dominio funcione a través de conexiones seguras. Marcamos las opciones de:
- Force SSL
- HTTP/2 Support
En «SSL Certificate» escogemos la opción «Request a new SSL Certificate», y en «Email Address for Let’s Encrypt» ponemos nuestra dirección de e-mail.
Con esto tendremos ya el proxy configurado y el subdominio que hemos configurado nos debería abrir nuestra web de Calibre.
7- Configuración de Calibre
Ya tenemos Calibre funcionando. Sólo tenemos que entrar en la página que hemos definido en el Nginx Proxy Manager para poder usarlo.
Credenciales por defecto.
La primera vez que entremos nos vamos a encontrar con ésto:
Las credenciales que tenéis que usar por defecto son:
Usuario: admin
Contraseña: admin123
Por supuesto, podréis cambiar estas credenciales por lo que queráis una vez hayamos iniciado la sesión, pero vamos a ver un par de configuraciones que seguro que os son de utilidad.
Localización de la base de datos.
Lo primero que se os preguntará es por la localización de la base de datos de Calibre. Podéis escribir /books/metadata.db
en el campo de texto o buscar la ruta desde el icono de la carpeta que tendréis a la derecha. Recordad que estaremos navegando en las carpetas de dentro del docker, no en las del host. Por tanto la carpeta books
no estará en /home/<tu_usuario>/docker/calibre
(esa ruta, aunque sí que existe en el host, no existe dentro del contenedor de Calibre) si no directamente en /books
(en la raiz del sistema). Hecho esto, pulsad sobre el botón «Save
«.
Cambio de contraseña del administrador.
Una vez hecho esto, os diría de ir al menú «Admin
«, el que tiene el icono del reloj, arriba a la derecha. Ahí podemos configurar varias cosas. En primer lugar, pulsando sobre «admin
«, podemos cambiar opciones del usuario administrador. Entre ellas, la más importante es cambiar la contraseña. Hacedlo ya mismo. Es muy muy muy peligroso dejar una contraseña por defecto en una web (de hecho es lo peor que podéis hacer).
Cambio del tema por defecto.
La segunda opción que os recomiendo cambiar está dentro del menú «Edit UI Configuration
«.
En esta página, primero desplegad «View Configuration
» y en «Theme
» seleccionad «caliBlur! Dark Theme
«. Luego id abajo de todo de la página y pulsad «Save
«.
¡Eh! Estos colores que tiene ahora la web me recuerdan a algo. He usado esto en alguna otra ocasión y no sé dónde.
Te tienen que recordar a Plex. Dado que hemos instalado Plex en uno de los artículos de esta serie, al usar ese tema visual en Calibre tendréis los dos interfaces exactamente iguales (lo hago por comodidad visual).
Cambio del idioma por defecto.
En la misma página hay un desplegable llamado «UI Configuration». Ahí debemos cambiar el «Default Language
» por el idioma en el que estemos más a gusto. Yo lo voy a cambiar por «Español
«, pero poned el idioma con el que estéis más cómodos. Luego pulsad en «Save
«.
Vale. lo que quieras. Pero esto me sigue apareciendo en un correctísimo inglés. Este menú está roto. ¿Dónde está la hoja de reclamaciones?
Estamos cambiando el idioma por defecto para nuevos usuarios. Tu usuario ya estaba creado. Si quieres cambiar el idioma de tu usuario tienes que ir al menú de la persona (el que está arriba a la derecha), desplegarlo, pulsar «admin
» y en «language
» seleccionar el idioma que te guste más. Por supuesto, al finalizar, tienes que pulsar «Save
» en la zona inferior de la página.
Permitir subidas.
Para permitir subir archivos directamente desde la web, hay que ir a la zona de Ajustes
(el icono con las herramientas, arriba a la derecha). Por la mitad de la página tendréis un botón que dice «Editar la configuración básica
«. Pulsamos en él. En la nueva página que nos sale, en la zona de «Configuración de características
» marcamos»Permitir subidas
» y luego pulsamos el botón «Guardar» que hay debajo de todo de la página.
Con esto os debería aparecer un icono a mayores en la parte superior derecha de la web (un libro con un símbolo «+»), que os permitiría ir subiendo libros a vuestra biblioteca.
Añadir usuarios con permisos personalizados.
Ahora, desde ajustes
, pulsando en Añadir nuevo usuario
, podéis añadir todos los usuarios que queráis que accedan a vuestra biblioteca de e-books. Pulsando en el nombre de cada usuario, podéis definir si vais a dejar que ese usuario en particular pueda subir o no libros nuevos a vuestra biblioteca, mediante la opción «Permitir subidas de libros».
8- Actualización de este contenedor
La actualización de Calibre se hace como siempre. Para los usuarios que sólo quieran tener este contenedor (Que no han hecho el resto de tutoriales) les recomendaría que crearan en la carpeta de su usuario un archivo llamado «actualizar.sh
» mediante el comando sudo nano actualizar.sh
. Una vez creado, habría que poner este código en su interior.
cd /home/<tu_usuario>/docker/calibre
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
Acuérdate de cambiar <tu_usuario>
por el usuario que uses en el sistema.
Luego le daríamos permisos de ejecución mediante el comando sudo chmod +x actualizar.sh
y lo podríamos ejecutar a voluntad con un simple sudo ./actualizar.sh
.
Si habéis seguido todos los tutoriales, yo simplemente añadiría ese código al resto que tenemos en ese archivo (para actualizar tanto el sistema operativo como los contenedores individuales), de forma que quedaría algo así.
sudo apt-get update -y
sudo apt-get dist-upgrade -y
sudo apt-get autoremove -y
sudo apt-get autoclean -y
cd /home/<tu_usuario>/docker/pihole
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/wireguard
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now
cd /home/<tu_usuario>/docker/amule
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now
cd /home/<tu_usuario>/docker/transmission
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/plex
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/navidrome
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/nextcloud
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/vikunja
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
cd /home/<tu_usuario>/docker/calibre
sudo docker-compose pull
sudo docker-compose up -d --remove-orphans
sudo docker image prune -f
sudo shutdown -r now
De nuevo, acuérdate de cambiar <tu_usuario>
por el usuario correcto de tu sistema.
Y con esto ya tendríais Calibre Web perfectamente instalado. Os quedaría listo para usar y actualizar cuando queráis. ¿Os ha resultado complicado seguir el tutorial? ¿Usáis algún otro programa (como por ejemplo «bookstack») para gestionar vuestras bibliotecas digitales? Como siempre, estaré atento a vuestros comentarios.
Buenos días, uso mucho la versión de escritorio y no conocía este versión web. Me parece que se va la voy a utilizar con mucha asiduidad. Creado el contenedor sin problemas. Muchas gracias.
Hola, tengo el docker instalado y operativo a través de Internet por el Proxy, pero cuando intento subir libros, me dice que ha habido un error y que la base de datos está locked. ¿Cómo puedo solucionarlo?
Por otro lado, yo tengo un directorio mapeado a la Raspberry con un NAS donde tengo un montón de libros, pero el docker de calibre no lo ve. ¿Habría alguna opción de hacerlo?
No tengo experiencia con linux pero estoy siguiendo paso por paso las indicaciones para instalar calibre-web en un raspberry 3 B+ y no hay forma. No consigo que me reconzca la ruta al archivo metadata.db
He modificado el compose.yml con las indicaciones de este post y la he dejado tal cual se publica en https://hub.docker.com/r/linuxserver/calibre-web.
Siempre me muestra: «DB Location is not Valid, Please Enter Correct Path»
A ver si me podéis ayudar… gracias!