GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar el servidor de libros electrónicos Calibre en Ubuntu 20.04

Calibre es un administrador de libros electrónicos gratuito y de código abierto. Se envía como una aplicación de escritorio multiplataforma junto con un componente de servidor y se puede usar para administrar su biblioteca de libros electrónicos.

Configurar calibre como un servidor le permite acceder a sus libros desde cualquier parte del mundo y le permite compartirlos con amigos y familiares. También puede transferirlos a sus dispositivos móviles para leerlos más tarde. El servidor Calibre también le permite leer libros electrónicos directamente en la web.

En este tutorial, aprenderá a instalar y utilizar un servidor de libros electrónicos de calibre en un servidor basado en Ubuntu 20.04.

Requisitos

  1. Un servidor basado en Ubuntu 20.04 con un usuario con privilegios sudo.

  2. Mantenga el servidor actualizado.

    $ sudo apt update && sudo apt upgrade
    

Configurar cortafuegos

Ubuntu 20.04 viene con Firewall sin complicaciones (UFW) de forma predeterminada. En caso de que no lo sea, instálelo primero.

$ sudo apt install ufw

Habilitar puerto SSH.

$ sudo ufw allow "OpenSSH"

Habilite el cortafuegos.

$ sudo ufw enable

Habilite los puertos 8080 que utiliza el servidor de calibre.

$ sudo ufw allow 8080

Compruebe el estado del cortafuegos.

$ sudo ufw status
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
8080                       ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)
8080 (v6)                  ALLOW       Anywhere (v6)

Descargar e instalar el servidor de calibre

Ubuntu 20.04 se envía con calibre, pero es mejor instalarlo directamente desde su sitio para obtener la última versión.

Primero, necesitas instalar algunas dependencias.

$ sudo apt install libfontconfig libgl1-mesa-glx

Descargue el instalador del servidor de calibre.

$ wget https://download.calibre-ebook.com/linux-installer.sh

Configure el script del instalador como ejecutable.

$ chmod +x ./linux-installer.sh

Ejecute el instalador.

$ sudo ./linux-installer.sh

Recibirá algunas advertencias porque el instalador espera un sistema de escritorio y no un servidor sin cabeza. Es seguro ignorarlos.

Crea una biblioteca y agrega tu primer libro

Para nuestro tutorial, descargaremos un libro del Proyecto Gutenberg como ejemplo. Project Gutenberg es un repositorio masivo de libros gratuitos de dominio público.

Ejecute el siguiente comando para descargar su primer libro. En el espíritu del reciente festival de Halloween, descarguemos una historia de terror, "La vuelta de tuerca" de Henry James.

$ wget http://www.gutenberg.org/ebooks/209.kindle.noimages -O turnofthescrew.mobi

Cree un directorio para su biblioteca de calibre.

$ mkdir calibre-library

Agregue el libro que acaba de descargar a su biblioteca de calibre utilizando calibredb comando.

$ calibredb add *.mobi --with-library calibre-library/
Added book ids: 1

Ha llegado el momento de poner en marcha calibre.

Ejecutar el servidor de calibre

Ejecute el siguiente comando para iniciar el servidor de contenido de calibre.

$ calibre-server calibre-library

calibre-server es el comando utilizado para iniciar el servidor y calibre-library es el nombre del directorio que acabamos de crear y será utilizado por el servidor para cargar la interfaz.

Debería ver un resultado similar.

calibre server listening on 0.0.0.0:8080
OPDS feeds advertised via BonJour at: your_server_ip port: 8080

Inicie la URL http://<yourserverip>:8080 en su navegador y verá la pantalla de calibre predeterminado.

Haga clic en calibre-library y verás el libro The turn of the screw acabas de descargar.

Puede detener el servidor presionando Ctrl+C en la línea de comando.

El servidor Calibre utiliza el puerto 8080 de forma predeterminada. Puede cambiarlo modificando el comando durante el lanzamiento.

$ calibre-server calibre-library --port 7530

Luego puede verificar iniciando la URL http://<yourserverip>:7530 en su navegador.

También deberá permitir el puerto a través del firewall.

$ sudo ufw allow 7530

Crea un servicio para calibre server

Probablemente querrá que calibre se ejecute para siempre, incluso después de que se reinicie el servidor. Para hacerlo, deberá crear un servicio para calibre que lo iniciará automáticamente al arrancar.

Cree un archivo /etc/systemd/system/calibre-server.service y ábralo para editarlo usando el editor Nano.

$ sudo nano /etc/systemd/system/calibre-server.service

Pegue el siguiente código.

## startup service
[Unit]
Description=calibre content server
After=network.target

[Service]
Type=simple
User=<username>
Group=<username>
ExecStart=/opt/calibre/calibre-server /home/<username>/calibre-library --enable-local-write

[Install]
WantedBy=multi-user.target

Reemplazar <username> con el usuario real del sistema en su servidor Ubuntu.

Guarde y cierre el archivo presionando Ctrl+W e ingresando Y cuando se le solicite.

Habilite e inicie el servicio de calibre.

$ sudo systemctl enable calibre-server
$ sudo systemctl start calibre-server

Puede verificar reiniciando el servicio.

$ sudo reboot

Espere un par de minutos y abra http://<yourserverip>:8080 en el navegador para asegurarse de que calibre funciona.

Añadir autenticación de usuario al servidor de calibre

Por ahora, cualquier persona que conozca la IP de su servidor puede acceder al servidor de calibre. Podemos cambiar eso agregando autenticación de usuario al servidor.

Primero, detenga el servidor de calibre.

$ sudo systemctl stop calibre-server

Inicie el script de administración de usuarios de calibre. Puede especificar la ruta donde se almacenará la base de datos del usuario. Se almacena en forma de una base de datos SQLite.

$ sudo calibre-server --userdb /home/<username>/.config/calibre/server-users.sqlite --manage-users
1) Add a new user
2) Edit an existing user
3) Remove a user
4) Cancel

What do you want to do? [1-4]: 1
Enter the username: howtoforge
Enter the new password for howtoforge:
Re-enter the new password for howtoforge, to verify:
User howtoforge added successfully!

Introduzca 1 para crear un nuevo usuario y elija una contraseña segura.

A continuación, necesitamos editar el servicio de calibre que habíamos configurado previamente.

Abra el archivo de servicio.

$ sudo nano /etc/systemd/system/calibre-server.service

Agregue el --enable-auth bandera hasta el final de la línea que comienza con ExecStart para habilitar la autenticación de usuario.

. . .
ExecStart=/opt/calibre/calibre-server "/home/<username>/calibre-library" --userdb "/home/<username>/.config/calibre/server-users.sqlite" --enable-local-write --enable-auth
. . .

Guarde y cierre el archivo presionando Ctrl+W e ingresando Y cuando se le solicite.

Actualice el demonio de servicio para volver a cargar el archivo de servicio modificado y vuelva a iniciar el servicio.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

La próxima vez que inicie el sitio, se le pedirá el nombre de usuario y la contraseña antes de acceder a la biblioteca.

Agregar libros automáticamente a su biblioteca

Podemos configurar una carpeta de inspección que puede ser rastreada por el servidor de calibre, de modo que cada vez que agregue un nuevo libro a la carpeta, se agregará automáticamente a la biblioteca de Calibre.

Cree una carpeta de observación y cambie a ella.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Descargue un nuevo libro a la carpeta usando el siguiente comando.

$ wget http://www.gutenberg.org/ebooks/514.epub.noimages -o littlewomen.epub

A continuación, abra el Editor Crontab.

$ crontab -e

Agregue la siguiente línea al final.

*/5 * * * * calibredb add /home/<username>/watchbooks/ -r --with-library http://localhost:8080#calibre-library --username calibreuser --password YourPassword && rm -r /home/<username>/watchbooks/*

Este script agregará todos los archivos en el directorio /home/<username>/watchbooks a la biblioteca de calibre y elimine todos los archivos originales, ya que ya no son necesarios.

El trabajo cron se ejecutará cada 5 minutos. Espere unos minutos y vuelva a cargar el sitio del servidor de calibre para ver el libro que acaba de agregar en la biblioteca.

Instalar Nginx

En este paso, instalaremos el servidor web Nginx para servir el servidor de calibre a través de un proxy. De esa manera, puede acceder a él a través de un nombre de dominio, por ejemplo, calibre.yourdomain.com . Tampoco tendrá que preocuparse por especificar ningún número de puerto. Y tener Nginx como proxy nos permite servir el sitio a través de SSL.

Ejecute el siguiente comando para instalar Nginx.

$ sudo apt install nginx

Abra los puertos 80 y 443 y cierre el puerto 8080 ya que ya no es necesario.

$ sudo ufw allow "Nginx Full"
$ sudo ufw delete allow 8080

Nginx Full es un perfil de aplicación para el firewall ufw que abrirá automáticamente los puertos 80 y 443.

$ sudo ufw status
Status: active

To                         Action      From

--                         ------      ----

OpenSSH                    ALLOW       Anywhere
Nginx Full  		   ALLOW       Anywhere	
OpenSSH (v6)               ALLOW       Anywhere (v6)
Nginx Full		   ALLOW       Anywhere (v6)

Instalar SSL

Instalaremos SSL utilizando el servicio Let's Encrypt.

Para eso, instale Certbot.

$ sudo apt install certbot

Detenga Nginx porque interferirá con el proceso de Certbot.

$ sudo systemctl stop nginx

Generar el certificado. También necesitamos crear un certificado DHParams.

$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL="[email protected]"
$ sudo certbot certonly --standalone -d $LDOMAIN --preferred-challenges http --agree-tos -n -m $LEMAIL --keep-until-expiring 
$ sudo systemctl start nginx
$ sudo openssl dhparam -out /etc/ssl/certs/dhparam.pem 2048

También necesitamos configurar un trabajo cron para renovar el SSL automáticamente. Para abrir el editor crontab, ejecute el siguiente comando

$ sudo crontab -e

El comando anterior abre el editor Crontab.

Pegue la siguiente línea en la parte inferior.

25 2 * * * /usr/bin/certbot renew --quiet --pre-hook “systemctl stop nginx” --post-hook “systemctl start nginx”

El trabajo cron anterior ejecutará certbot a las 2:25 am todos los días. Puedes cambiarlo a lo que quieras.

Guarde el archivo presionando Ctrl + X e ingresando Y cuando se le solicite.

Configure Nginx para servir Calibre sobre proxy usando SSL

Necesitamos editar el archivo de configuración de Nginx para agregar la configuración SSL.

Ejecute el siguiente comando para agregar un archivo de configuración para el servidor Calibre.

$ sudo nano /etc/nginx/sites-available/calibre.conf

Pegue el siguiente código en el editor.

server {
    listen 80;
    listen [::]:80;
    server_name calibre.yourdomain.com;
    # enforce https
    return 301 https://$server_name:443$request_uri;
}

server {
    listen 443 ssl http2;
    listen [::]:443 ssl http2;
    server_name calibre.yourdomain.com;

    location / {
        proxy_pass http://127.0.0.1:8080;
    }

    # Use Mozilla's guidelines for SSL/TLS settings
    # https://mozilla.github.io/server-side-tls/ssl-config-generator/
    ssl_certificate /etc/letsencrypt/live/calibre.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/calibre.yourdomain.com/privkey.pem;
    ssl_protocols TLSv1.2 TLSv1.3;
    ssl_session_timeout 1d;
    ssl_session_cache shared:MozSSL:10m;  # about 40000 sessions
    ssl_session_tickets off;
    ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
    ssl_prefer_server_ciphers off;
    ssl_dhparam /etc/ssl/certs/dhparam.pem;
}

Presiona Ctrl + X para cerrar el editor y presiona Y cuando se le solicite guardar el archivo.

Active este archivo de configuración vinculándolo a sites-enabled directorio.

$ sudo ln -s /etc/nginx/sites-available/calibre.conf /etc/nginx/sites-enabled/

Pruebe la configuración de Nginx.

$ sudo nginx -t

Debería ver el siguiente resultado que indica que su configuración es correcta.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Vuelva a cargar el servicio Nginx.

$ sudo systemctl reload nginx

Ahora puede iniciar el sitio a través de la URL https://calibre.yourdomain.com .

Conclusión

En este tutorial, aprendió cómo instalar y ejecutar el servidor de libros electrónicos Calibre y ejecutarlo en Nginx junto con la autenticación de usuario y con la capacidad de agregar libros automáticamente. Si tiene alguna pregunta, publíquela en los comentarios a continuación.


Ubuntu
  1. Cómo instalar MySQL en Ubuntu 18.04

  2. Cómo instalar el servidor de Minecraft en Ubuntu 18.04

  3. Cómo instalar Nginx en Ubuntu 20.04

  4. Cómo instalar MariaDB en Ubuntu 20.04

  5. Cómo instalar Zimbra 8.6 en el servidor Ubuntu 14.04

Cómo instalar Cockpit en Ubuntu 20.04

Cómo instalar el servidor VNC en Ubuntu 20.04

Cómo instalar el servidor HTTrack en Ubuntu 20.04

Cómo instalar Snappass en Ubuntu

Cómo instalar Virtualmin en Ubuntu 20.04

Cómo instalar el servidor TeamSpeak en Ubuntu 20.04