GNU/Linux >> Znalost Linux >  >> Ubuntu

Jak nainstalovat Caliber Ebook Server na Ubuntu 20.04

Calibre je bezplatný správce elektronických knih s otevřeným zdrojovým kódem. Dodává se jako multiplatformní desktopová aplikace spolu se serverovou komponentou a lze ji použít ke správě vaší knihovny elektronických knih.

Nastavení Calibre jako serveru vám umožní přístup k vašim knihám odkudkoli na světě a umožní vám je sdílet s přáteli a rodinou. Můžete je také přenést do svých mobilních zařízení a přečíst si je později. Server Calibre také umožňuje číst e-knihy přímo na webu.

V tomto tutoriálu se dozvíte, jak nainstalovat a používat ebook server Calibre na serveru založeném na Ubuntu 20.04.

Předpoklady

  1. Server založený na Ubuntu 20.04 s uživatelem s právy sudo.

  2. Udržujte server aktualizovaný.

    $ sudo apt update && sudo apt upgrade
    

Konfigurovat bránu firewall

Ubuntu 20.04 je standardně dodáván s nekomplikovaným firewallem (UFW). Pokud tomu tak není, nejprve jej nainstalujte.

$ sudo apt install ufw

Povolte port SSH.

$ sudo ufw allow "OpenSSH"

Povolte bránu firewall.

$ sudo ufw enable

Povolte porty 8080, které používá server Calibre.

$ sudo ufw allow 8080

Zkontrolujte stav brány 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)

Stažení a instalace serveru Calibre

Ubuntu 20.04 se dodává s Calibre, ale pro získání nejnovější verze je lepší jej nainstalovat přímo z jejich webu.

Nejprve musíte nainstalovat některé závislosti.

$ sudo apt install libfontconfig libgl1-mesa-glx

Stáhněte si instalační program serveru Calibre.

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

Nastavte instalační skript jako spustitelný.

$ chmod +x ./linux-installer.sh

Spusťte instalační program.

$ sudo ./linux-installer.sh

Dostanete určitá varování, protože instalační program očekává systém Desktop a ne bezhlavý server. Je bezpečné je ignorovat.

Vytvořte knihovnu a přidejte svou první knihu

Pro náš tutoriál si jako příklad stáhneme knihu z projektu Gutenberg. Projekt Gutenberg je rozsáhlé úložiště bezplatných knih ve veřejném vlastnictví.

Spusťte následující příkaz a stáhněte si svou první knihu. V duchu nedávného svátku Halloween si stáhněte hororový příběh „The turn of the screw“ od Henryho Jamese.

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

Vytvořte adresář pro svou knihovnu Calibre.

$ mkdir calibre-library

Přidejte knihu, kterou jste právě stáhli, do své knihovny Calibre pomocí calibredb příkaz.

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

Nyní je čas začít s kalibrem.

Spuštění serveru Calibre

Spuštěním následujícího příkazu spusťte server obsahu Calibre.

$ calibre-server calibre-library

calibre-server je příkaz používaný ke spuštění serveru a calibre-library je název adresáře, který jsme právě vytvořili a který server použije k načtení rozhraní.

Měli byste vidět podobný výstup.

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

Spusťte URL http://<yourserverip>:8080 ve vašem prohlížeči a uvidíte výchozí obrazovku kalibru.

Klikněte na calibre-library a uvidíte knihu The turn of the screw právě jste stáhli.

Server můžete zastavit stisknutím Ctrl+C na příkazovém řádku.

Server Calibre používá ve výchozím nastavení port 8080. Můžete to změnit úpravou příkazu během spouštění.

$ calibre-server calibre-library --port 7530

Poté můžete zkontrolovat spuštěním URL http://<yourserverip>:7530 ve vašem prohlížeči.

Budete také muset povolit port přes bránu firewall.

$ sudo ufw allow 7530

Vytvořit službu pro server Calibre

Pravděpodobně byste chtěli, aby Calibre běžel navždy i po restartu serveru. Chcete-li to provést, budete muset vytvořit službu pro Calibre, která jej spustí automaticky při bootování.

Vytvořte soubor /etc/systemd/system/calibre-server.service a otevřete jej pro úpravy pomocí editoru Nano.

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

Vložte následující kód.

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

Nahraďte <username> se skutečným uživatelem systému na vašem serveru Ubuntu.

Uložte a zavřete soubor stisknutím Ctrl+W a zadáním Y až budete vyzváni.

Povolte a spusťte službu Calibre.

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

Můžete to zkontrolovat restartováním služby.

$ sudo reboot

Počkejte několik minut a otevřete http://<yourserverip>:8080 v prohlížeči, abyste se ujistili, že Calibre funguje.

Přidat ověření uživatele na server Calibre

V tuto chvíli má k serveru Calibre přístup kdokoli, kdo zná IP vašeho serveru. Můžeme to změnit přidáním ověření uživatele na server.

Nejprve zastavte server Calibre.

$ sudo systemctl stop calibre-server

Spusťte skript správy uživatelů Calibre. Můžete zadat cestu, kam bude databáze uživatelů uložena. Je uložena ve formě databáze 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!

Zadejte 1 pro vytvoření nového uživatele a zvolte silné heslo.

Dále musíme upravit službu Calibre, kterou jsme dříve nastavili.

Otevřete soubor služby.

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

Přidejte --enable-auth příznak na konec řádku začínajícího ExecStart pro povolení ověření uživatele.

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

Uložte a zavřete soubor stisknutím Ctrl+W a zadáním Y až budete vyzváni.

Obnovte démona služby, abyste znovu načetli upravený soubor služby a spustili službu znovu.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

Při příštím spuštění stránky budete před přístupem do knihovny požádáni o uživatelské jméno a heslo.

Automaticky přidávat knihy do knihovny

Můžeme nastavit sledovací složku, kterou lze sledovat serverem Calibre, takže kdykoli do složky přidáte novou knihu, bude automaticky přidána do knihovny Calibre.

Vytvořte sledovací složku a přepněte se do ní.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Stáhněte si novou knihu do složky pomocí následujícího příkazu.

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

Dále otevřete Crontab Editor.

$ crontab -e

Přidejte následující řádek na konec.

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

Tento skript přidá všechny soubory v adresáři /home/<username>/watchbooks do knihovny Calibre a smažte všechny původní soubory, protože již nejsou potřeba.

Úloha cron se spustí každých 5 minut. Počkejte několik minut a znovu načtěte stránku serveru Calibre, aby se kniha, kterou jste právě přidali, objevila v knihovně.

Instalovat Nginx

V tomto kroku nainstalujeme webový server Nginx, aby obsluhoval server Calibre přes proxy. Tímto způsobem k němu můžete přistupovat přes název domény, například calibre.yourdomain.com . Také se nebudete muset starat o zadávání čísel portů. A mít Nginx jako proxy nám umožňuje obsluhovat web přes SSL.

Spusťte následující příkaz a nainstalujte Nginx.

$ sudo apt install nginx

Otevřete porty 80 a 443 a zavřete port 8080, protože již není vyžadován.

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

Nginx Full je aplikační profil pro ufw firewall, který automaticky otevře porty 80 a 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)

Instalovat SSL

Nainstalujeme SSL pomocí služby Let’s Encrypt.

Za tímto účelem si nainstalujte Certbot.

$ sudo apt install certbot

Zastavte Nginx, protože to bude narušovat proces Certbot.

$ sudo systemctl stop nginx

Vygenerujte certifikát. Potřebujeme také vytvořit certifikát 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

Musíme také nastavit úlohu cron pro automatické obnovení SSL. Chcete-li otevřít editor crontab, spusťte následující příkaz

$ sudo crontab -e

Výše uvedený příkaz otevře editor Crontab.

Vložte následující řádek do spodní části.

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

Výše uvedená úloha cron spustí certbot každý den ve 2:25. Můžete jej změnit na cokoli chcete.

Uložte soubor stisknutím Ctrl + X a zadáním Y až budete vyzváni.

Nakonfigurujte Nginx pro poskytování Calibre přes proxy pomocí SSL

Potřebujeme upravit konfigurační soubor Nginx, abychom přidali konfiguraci SSL.

Spusťte následující příkaz a přidejte konfigurační soubor pro server Calibre.

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

Vložte následující kód do editoru.

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;
}

Stiskněte Ctrl + X zavřete editor a stiskněte Y až budete vyzváni k uložení souboru.

Tento konfigurační soubor aktivujte jeho propojením s sites-enabled adresář.

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

Otestujte konfiguraci Nginx.

$ sudo nginx -t

Měli byste vidět následující výstup indikující, že vaše konfigurace je správná.

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

Znovu načtěte službu Nginx.

$ sudo systemctl reload nginx

Nyní můžete web spustit prostřednictvím adresy URL https://calibre.yourdomain.com .

Závěr

V tomto tutoriálu jste se naučili, jak nainstalovat a spustit ebook server Calibre a spustit jej přes Nginx spolu s ověřením uživatele a s možností automatického přidávání knih. Pokud máte nějaké dotazy, napište je do komentářů níže.


Ubuntu
  1. Jak nainstalovat MySQL na Ubuntu 18.04

  2. Jak nainstalovat Minecraft Server na Ubuntu 18.04

  3. Jak nainstalovat Zimbru 8.6 na server Ubuntu 14.04

  1. Jak nainstalovat Nginx na Ubuntu 20.04

  2. Jak nainstalovat MariaDB na Ubuntu 20.04

  3. Jak nainstalovat VNC Server na Ubuntu 14.04

  1. Jak nainstalovat OpenSIPS Server na Ubuntu 15.04

  2. Jak nainstalovat Consul Server na Ubuntu 16.04

  3. Jak nainstalovat Zabbix na Ubuntu 18.04