Ricerca nel sito web

Come installare Calibre Ebook Server su Ubuntu 20.04


Questo tutorial esiste per queste versioni del sistema operativo

  • Ubuntu 22.04 (Jammy Jellyfish)
  • Ubuntu 20.04 (Focal Fossa)

Su questa pagina

  1. Prerequisiti
  2. Configura firewall
  3. Scarica e installa il server calibre
  4. Crea una libreria e aggiungi il tuo primo libro
  5. Esegui il server calibre
  6. Crea un servizio per il server Calibre
  7. Aggiungi l'autenticazione utente al server Calibre
  8. Aggiungi automaticamente libri alla tua raccolta
  9. Installa Nginx
  10. Installa SSL
  11. Configura Nginx per servire Calibre tramite proxy utilizzando SSL
  12. Conclusione

Calibre è un gestore di e-book gratuito e open source. Viene fornito come applicazione desktop multipiattaforma insieme a un componente server e può essere utilizzato per gestire la tua libreria di e-book.

L'impostazione di Calibre come server ti consente di accedere ai tuoi libri da qualsiasi parte del mondo e di condividerli con amici e familiari. Puoi anche trasferirli sui tuoi dispositivi mobili per leggerli in seguito. Il server Calibre ti consente anche di leggere gli e-book direttamente sul web.

In questo tutorial imparerai come installare e utilizzare un server di ebook Calibre su un server basato su Ubuntu 20.04.

Prerequisiti

  1. An Ubuntu 20.04 based server with a user with sudo privileges.

  2. Keep the server updated.

    $ sudo apt update && sudo apt upgrade
    

Configura firewall

Ubuntu 20.04 viene fornito con Uncomplicated Firewall (UFW) per impostazione predefinita. In caso contrario, installalo prima.

$ sudo apt install ufw

Abilita la porta SSH.

$ sudo ufw allow "OpenSSH"

Abilita il firewall.

$ sudo ufw enable

Abilita le porte 8080 utilizzate dal server Calibre.

$ sudo ufw allow 8080

Controlla lo stato del firewall.

$ sudo ufw status
Status: active

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

Scarica e installa Calibre Server

Ubuntu 20.04 viene fornito con Calibre, ma è meglio installarlo direttamente dal loro sito invece di ottenere l'ultima versione.

Innanzitutto, è necessario installare alcune dipendenze.

$ sudo apt install libfontconfig libgl1-mesa-glx

Scarica il programma di installazione del server Calibre.

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

Imposta lo script di installazione come eseguibile.

$ chmod +x ./linux-installer.sh

Esegui il programma di installazione.

$ sudo ./linux-installer.sh

Riceverai alcuni avvisi perché il programma di installazione si aspetta un sistema desktop e non un server headless. È sicuro ignorarli.

Crea una libreria e aggiungi il tuo primo libro

Per il nostro tutorial, scaricheremo un libro dal Progetto Gutenberg come esempio. Project Gutenberg è un enorme archivio di libri di pubblico dominio gratuiti.

Esegui il seguente comando per scaricare il tuo primo libro. Nello spirito del recente festival di Halloween, scarichiamo una storia dell'orrore, \Il giro di vite\ di Henry James.

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

Crea una directory per la tua libreria Calibre.

$ mkdir calibre-library

Aggiungi il libro che hai appena scaricato alla tua libreria di Calibre usando il comando calibredb.

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

È giunto il momento di iniziare il calibro.

Esegui il Calibre Server

Esegui il comando seguente per avviare il server dei contenuti di Calibre.

$ calibre-server calibre-library

calibre-server è il comando utilizzato per avviare il server e calibre-library è il nome della directory appena creata e verrà utilizzata dal server per caricare l'interfaccia.

Dovresti vedere un output simile.

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

Avvia l'URL http://:8080 nel tuo browser e vedrai la schermata predefinita di Calibre.

Clicca su calibre-library e vedrai il libro The turn of the screw che hai appena scaricato.

Puoi arrestare il server premendo Ctrl+C sulla riga di comando.

Il server Calibre utilizza la porta 8080 per impostazione predefinita. Puoi cambiarlo modificando il comando durante l'avvio.

$ calibre-server calibre-library --port 7530

Puoi quindi verificare avviando l'URL http://:7530 nel tuo browser.

Dovrai anche consentire la porta tramite il firewall.

$ sudo ufw allow 7530

Crea un servizio per il server Calibre

Probabilmente vorresti che Calibre fosse eseguito per sempre anche dopo il riavvio del server. Per fare ciò, dovrai creare un servizio per Calibre che lo avvierà automaticamente all'avvio.

Crea un file /etc/systemd/system/calibre-server.service e aprilo per modificarlo utilizzando l'editor Nano.

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

Incolla il seguente codice.

## 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

Sostituisci <username> con l'effettivo utente di sistema sul tuo server Ubuntu.

Salva e chiudi il file premendo Ctrl+W e immettendo Y quando richiesto.

Abilita e avvia il servizio Calibre.

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

Puoi verificare riavviando il servizio.

$ sudo reboot

Attendi un paio di minuti e apri http://:8080 nel browser per assicurarti che Calibre funzioni.

Aggiungi l'autenticazione utente al server Calibre

Per ora, chiunque conosca l'IP del tuo server può accedere al server di Calibre. Possiamo cambiarlo aggiungendo l'autenticazione dell'utente al server.

Innanzitutto, arresta il server di Calibre.

$ sudo systemctl stop calibre-server

Avvia lo script di gestione degli utenti di Calibres. È possibile specificare il percorso in cui verrà archiviato il database utente. È memorizzato sotto forma di un database 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!

Immettere 1 per creare un nuovo utente e scegliere una password sicura.

Successivamente, dobbiamo modificare il servizio di calibro che avevamo impostato in precedenza.

Apri il file di servizio.

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

Aggiungi il flag --enable-auth alla fine della riga che inizia con ExecStart per abilitare l'autenticazione dell'utente.

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

Salva e chiudi il file premendo Ctrl+W e immettendo Y quando richiesto.

Aggiorna il demone del servizio per ricaricare il file del servizio modificato e riavviare il servizio.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

La prossima volta che avvierai il sito, ti verrà chiesto il nome utente e la password prima di accedere alla biblioteca.

Aggiungi automaticamente libri alla tua libreria

Possiamo impostare una cartella di controllo che può essere monitorata dal server di Calibre, quindi ogni volta che aggiungi un nuovo libro alla cartella, verrà aggiunto automaticamente alla libreria di Calibre.

Crea una cartella di controllo e passa ad essa.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Scarica un nuovo libro nella cartella usando il seguente comando.

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

Successivamente, apri l'editor Crontab.

$ crontab -e

Aggiungi la seguente riga alla fine.

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

Questo script aggiungerà tutti i file nella directory /home//watchbooks alla libreria di Calibre ed eliminerà tutti i file originali poiché non sono più necessari.

Il cron job verrà eseguito ogni 5 minuti. Attendi qualche minuto e ricarica il sito del server calibre per vedere il libro che hai appena aggiunto apparire nella libreria.

Installa Nginx

In questo passaggio, installeremo il server web Nginx per servire il server Calibre tramite proxy. In questo modo puoi accedervi tramite un nome di dominio, ad esempio calibre.yourdomain.com. Inoltre, non dovrai preoccuparti di specificare alcun numero di porta. E avere Nginx come proxy ci consente di servire il sito tramite SSL.

Eseguire il seguente comando per installare Nginx.

$ sudo apt install nginx

Aprire le porte 80 e 443 e chiudere la porta 8080 poiché non è più necessaria.

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

Nginx Full è un profilo dell'applicazione per il firewall ufw che aprirà automaticamente le porte 80 e 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)

Installa SSL

Installeremo SSL utilizzando il servizio Let's Encrypt.

Per questo, installa Certbot.

$ sudo apt install certbot

Arresta Nginx perché interferirà con il processo Certbot.

$ sudo systemctl stop nginx

Genera il certificato. Abbiamo anche bisogno di creare un certificato DHParams.

$ export LDOMAIN="calibre.yourdomain.com"
$ export LEMAIL=""
$ 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

Dobbiamo anche impostare un cron job per il rinnovo automatico di SSL. Per aprire l'editor crontab, eseguire il seguente comando

$ sudo crontab -e

Il comando precedente apre l'editor Crontab.

Incolla la seguente riga in basso.

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

Il lavoro cron di cui sopra eseguirà certbot alle 2:25 ogni giorno. Puoi cambiarlo in qualsiasi cosa tu voglia.

Salva il file premendo Ctrl + X e immettendo Y quando richiesto.

Configura Nginx per servire Calibre tramite proxy utilizzando SSL

Dobbiamo modificare il file di configurazione di Nginx per aggiungere la configurazione SSL.

Esegui il seguente comando per aggiungere un file di configurazione per il server Calibre.

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

Incolla il seguente codice nell'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;
}

Premi Ctrl + X per chiudere l'editor e premi Y quando ti viene chiesto di salvare il file.

Attiva questo file di configurazione collegandolo alla directory sites-enabled.

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

Testare la configurazione di Nginx.

$ sudo nginx -t

Dovresti vedere il seguente output che indica che la tua configurazione è corretta.

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

Ricarica il servizio Nginx.

$ sudo systemctl reload nginx

Ora puoi avviare il sito tramite l'URL https://calibre.yourdomain.com.

Conclusione

In questo tutorial, hai imparato come installare ed eseguire il server di ebook Calibre ed eseguirlo su Nginx insieme all'autenticazione dell'utente e alla possibilità di aggiungere libri automaticamente. Se hai domande, pubblicale nei commenti qui sotto.