GNU/Linux >> Linux Esercitazione >  >> Ubuntu

Come installare Calibre Ebook Server su Ubuntu 20.04

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.

Configurare 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 permette anche di leggere gli e-book direttamente sul web.

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

Prerequisiti

  1. Un server basato su Ubuntu 20.04 con un utente con privilegi sudo.

  2. Mantieni aggiornato il server.

    $ 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 il server calibre

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

Innanzitutto, devi 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 prevede 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 da Project Gutenberg come esempio. Project Gutenberg è un enorme archivio di libri di pubblico dominio gratuiti.

Esegui il comando seguente 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 di calibri.

$ mkdir calibre-library

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

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

È ora di avviare Calibre.

Esegui il server calibre

Esegui il comando seguente per avviare Calibre Content Server.

$ calibre-server calibre-library

calibre-server è il comando utilizzato per avviare il server e calibre-library è il nome della directory che abbiamo appena creato 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://<yourserverip>:8080 nel tuo browser e vedrai la schermata di default del calibro.

Fare clic su calibre-library e vedrai il libro The turn of the screw 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 controllare avviando l'URL http://<yourserverip>:7530 nel tuo browser.

Dovrai anche consentire la porta tramite il firewall.

$ sudo ufw allow 7530

Crea un servizio per calibre server

Probabilmente vorrai che Calibre funzioni per sempre anche dopo il riavvio del server. Per farlo, dovrai creare un servizio per calibre che lo avvierà automaticamente all'avvio.

Crea un file /etc/systemd/system/calibre-server.service e aprilo per la modifica 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'utente di sistema effettivo sul tuo server Ubuntu.

Salva e chiudi il file premendo Ctrl+W e inserendo 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://<yourserverip>:8080 nel browser per assicurarti che Calibre funzioni.

Aggiungi autenticazione utente al server calibre

Per ora, chiunque conosca l'IP del tuo server può accedere al server 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 del calibro. È possibile specificare il percorso in cui verrà archiviato il database utente. È archiviato 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 complessa.

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

Apri il file del servizio.

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

Aggiungi il --enable-auth contrassegna fino alla fine della riga che inizia con ExecStart per abilitare l'autenticazione 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 inserendo 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 verranno richiesti nome utente e password prima di accedere alla libreria.

Aggiungi automaticamente libri alla tua libreria

Possiamo impostare una cartella di controllo che può essere tracciata dal server di Calibre in modo che 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 comando seguente.

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

Quindi, apri l'editor Crontab.

$ crontab -e

Aggiungi la riga seguente 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/<username>/watchbooks nella libreria calibre ed elimina tutti i file originali poiché non sono più necessari.

Il processo cron verrà eseguito ogni 5 minuti. Attendi qualche minuto e ricarica il sito del server di Calibre per vedere apparire in libreria il libro che hai appena aggiunto.

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.

Esegui il comando seguente per installare Nginx.

$ sudo apt install nginx

Apri le porte 80 e 443 e chiudi 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

Interrompi Nginx perché interferirà con il processo di Certbot.

$ sudo systemctl stop nginx

Genera il certificato. Dobbiamo anche creare un certificato 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

Abbiamo anche bisogno di impostare un cron job per rinnovare automaticamente SSL. Per aprire l'editor crontab, esegui il seguente comando

$ sudo crontab -e

Il comando sopra apre l'editor Crontab.

Incolla la riga seguente in basso.

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

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

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

Configura Nginx per servire Calibre su proxy utilizzando SSL

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

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

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

Incolla il codice seguente 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 premere Y quando viene richiesto di salvare il file.

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

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

Testa 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.


Ubuntu
  1. Come installare MySQL su Ubuntu 18.04

  2. Come installare il server Minecraft su Ubuntu 18.04

  3. Come installare Nginx su Ubuntu 20.04

  4. Come installare MariaDB su Ubuntu 20.04

  5. Come installare Zimbra 8.6 su Ubuntu 14.04 Server

Come installare Cockpit su Ubuntu 20.04

Come installare il server VNC su Ubuntu 20.04

Come installare il server HTTrack su Ubuntu 20.04

Come installare Snappass su Ubuntu

Come installare Virtualmin su Ubuntu 20.04

Come installare TeamSpeak Server su Ubuntu 20.04