GNU/Linux >> Belajar Linux >  >> Ubuntu

Cara Menginstal Server Ebook Kaliber di Ubuntu 20.04

Calibre adalah pengelola e-book sumber terbuka dan gratis. Ini dikirimkan sebagai aplikasi desktop lintas platform bersama dengan komponen server dan dapat digunakan untuk mengelola perpustakaan e-book Anda.

Menyiapkan kaliber sebagai server memungkinkan Anda mengakses buku dari mana saja di dunia dan memungkinkan Anda membaginya dengan teman dan keluarga. Anda juga dapat mentransfernya ke perangkat seluler Anda untuk dibaca nanti. Server Calibre juga memungkinkan Anda membaca e-book langsung di web.

Dalam tutorial ini, Anda akan belajar tentang cara menginstal dan menggunakan server ebook kaliber di server berbasis Ubuntu 20.04.

Prasyarat

  1. Server berbasis Ubuntu 20.04 dengan pengguna dengan hak sudo.

  2. Tetap perbarui server.

    $ sudo apt update && sudo apt upgrade
    

Konfigurasi Firewall

Ubuntu 20.04 hadir dengan Uncomplicated Firewall (UFW) secara default. Jika belum, instal terlebih dahulu.

$ sudo apt install ufw

Aktifkan port SSH.

$ sudo ufw allow "OpenSSH"

Aktifkan firewall.

$ sudo ufw enable

Aktifkan port 8080 yang digunakan oleh server kaliber.

$ sudo ufw allow 8080

Periksa status 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)

Unduh dan Instal Server kaliber

Ubuntu 20.04 memang dikirimkan dengan kaliber tetapi lebih baik menginstalnya langsung dari situs mereka daripada mendapatkan versi terbaru.

Pertama, Anda perlu menginstal beberapa dependensi.

$ sudo apt install libfontconfig libgl1-mesa-glx

Unduh penginstal server kaliber.

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

Setel skrip penginstal sebagai yang dapat dieksekusi.

$ chmod +x ./linux-installer.sh

Jalankan penginstal.

$ sudo ./linux-installer.sh

Anda akan mendapatkan beberapa peringatan karena penginstal mengharapkan sistem Desktop dan bukan server tanpa kepala. Aman untuk mengabaikannya.

Buat Perpustakaan dan Tambahkan Buku pertama Anda

Untuk tutorial kami, kami akan mengunduh buku dari Project Gutenberg sebagai contoh. Project Gutenberg adalah gudang besar buku domain publik gratis.

Jalankan perintah berikut untuk mengunduh buku pertama Anda. Dalam semangat festival Halloween baru-baru ini, mari kita unduh cerita horor, "Pergantian sekrup" oleh Henry James.

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

Buat direktori untuk perpustakaan kaliber Anda.

$ mkdir calibre-library

Tambahkan buku yang baru saja Anda unduh ke perpustakaan kaliber Anda menggunakan calibredb perintah.

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

Sekarang saatnya untuk memulai kaliber.

Jalankan Server kaliber

Jalankan perintah berikut untuk memulai server konten kaliber.

$ calibre-server calibre-library

calibre-server adalah perintah yang digunakan untuk memulai server dan calibre-library adalah nama direktori yang baru saja kita buat dan akan digunakan oleh server untuk memuat antarmuka.

Anda akan melihat keluaran serupa.

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

Luncurkan URL http://<yourserverip>:8080 di browser Anda dan Anda akan melihat layar kaliber default.

Klik calibre-library dan Anda akan melihat buku The turn of the screw Anda baru saja mengunduh.

Anda dapat menghentikan server dengan menekan Ctrl+C di baris perintah.

Server kaliber menggunakan port 8080 secara default. Anda dapat mengubahnya dengan memodifikasi perintah selama peluncuran.

$ calibre-server calibre-library --port 7530

Anda kemudian dapat memeriksa dengan meluncurkan URL http://<yourserverip>:7530 di browser Anda.

Anda juga harus mengizinkan port tersebut melalui firewall.

$ sudo ufw allow 7530

Buat layanan untuk server kaliber

Anda mungkin ingin kaliber berjalan selamanya bahkan setelah server dimulai ulang. Untuk melakukannya, Anda perlu membuat layanan untuk kaliber yang akan memulainya secara otomatis saat boot.

Buat file /etc/systemd/system/calibre-server.service dan buka untuk diedit menggunakan editor Nano.

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

Tempelkan kode berikut.

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

Ganti <username> dengan pengguna sistem yang sebenarnya di server Ubuntu Anda.

Simpan dan tutup file dengan menekan Ctrl+W dan memasukkan Y saat diminta.

Aktifkan dan mulai layanan kaliber.

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

Anda dapat memeriksanya dengan me-reboot layanan.

$ sudo reboot

Tunggu beberapa menit dan buka http://<yourserverip>:8080 di browser untuk memastikan kaliber berfungsi.

Tambahkan otentikasi Pengguna ke server kaliber

Untuk saat ini, siapa pun yang mengetahui IP server Anda dapat mengakses server kaliber. Kita dapat mengubahnya dengan menambahkan otentikasi pengguna ke server.

Pertama, hentikan server kaliber.

$ sudo systemctl stop calibre-server

Mulai skrip manajemen pengguna kaliber. Anda dapat menentukan jalur di mana database pengguna akan disimpan. Itu disimpan dalam bentuk 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!

Masukkan 1 untuk membuat pengguna baru dan pilih kata sandi yang kuat.

Selanjutnya, kita perlu mengedit layanan kaliber yang telah kita siapkan sebelumnya.

Buka file layanan.

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

Tambahkan --enable-auth tandai ke akhir baris yang dimulai dengan ExecStart untuk mengaktifkan otentikasi pengguna.

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

Simpan dan tutup file dengan menekan Ctrl+W dan memasukkan Y saat diminta.

Refresh daemon layanan untuk memuat ulang file layanan yang dimodifikasi dan memulai layanan lagi.

sudo systemctl daemon-reload
sudo systemctl start calibre-server

Lain kali, Anda meluncurkan situs, Anda akan dimintai nama pengguna dan kata sandi sebelum mengakses perpustakaan.

Otomatis Tambahkan Buku ke perpustakaan Anda

Kami dapat menyiapkan folder arloji yang dapat dilacak oleh server kaliber sehingga setiap kali Anda menambahkan buku baru ke folder tersebut, buku itu akan ditambahkan secara otomatis ke perpustakaan Kaliber.

Buat folder arloji dan alihkan ke sana.

$ mkdir ~/watchbooks
$ cd ~/watchbooks

Unduh buku baru ke folder menggunakan perintah berikut.

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

Selanjutnya, buka Editor Crontab.

$ crontab -e

Tambahkan baris berikut di akhir.

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

Script ini akan menambahkan semua file di direktori /home/<username>/watchbooks ke perpustakaan kaliber dan hapus semua file asli karena tidak lagi diperlukan.

Pekerjaan cron akan berjalan setiap 5 menit. Tunggu beberapa menit dan muat ulang situs server kaliber untuk melihat buku yang baru saja Anda tambahkan muncul di perpustakaan.

Instal Nginx

Pada langkah ini, kita akan menginstal server web Nginx untuk melayani server berkaliber melalui proxy. Dengan begitu Anda dapat mengaksesnya melalui nama domain misalnya, calibre.yourdomain.com . Anda juga tidak perlu khawatir untuk menentukan nomor port apa pun. Dan memiliki Nginx sebagai proxy memungkinkan kami untuk melayani situs melalui SSL.

Jalankan perintah berikut untuk menginstal Nginx.

$ sudo apt install nginx

Buka port 80 dan 443 dan tutup port 8080 karena tidak diperlukan lagi.

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

Nginx Full adalah profil aplikasi untuk firewall ufw yang secara otomatis akan membuka port 80 dan 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)

Instal SSL

Kami akan menginstal SSL menggunakan layanan Let's Encrypt.

Untuk itu, instal Certbot.

$ sudo apt install certbot

Hentikan Nginx karena akan mengganggu proses Certbot.

$ sudo systemctl stop nginx

Menghasilkan sertifikat. Kita juga perlu membuat sertifikat 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

Kami juga perlu menyiapkan tugas cron untuk memperbarui SSL secara otomatis. Untuk membuka editor crontab, jalankan perintah berikut

$ sudo crontab -e

Perintah di atas membuka editor Crontab.

Rekatkan baris berikut di bagian bawah.

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

Pekerjaan cron di atas akan menjalankan certbot pada pukul 2:25 pagi setiap hari. Anda dapat mengubahnya menjadi apa pun yang Anda inginkan.

Simpan file dengan menekan Ctrl + X dan memasukkan Y saat diminta.

Konfigurasikan Nginx untuk melayani Kaliber melalui proxy menggunakan SSL

Kita perlu mengedit file konfigurasi Nginx untuk menambahkan konfigurasi SSL.

Jalankan perintah berikut untuk menambahkan file konfigurasi untuk server Calibre.

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

Rekatkan kode berikut di 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;
}

Tekan Ctrl + X untuk menutup editor dan tekan Y saat diminta untuk menyimpan file.

Aktifkan file konfigurasi ini dengan menautkannya ke sites-enabled direktori.

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

Uji konfigurasi Nginx.

$ sudo nginx -t

Anda akan melihat output berikut yang menunjukkan konfigurasi Anda benar.

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

Muat ulang layanan Nginx.

$ sudo systemctl reload nginx

Anda sekarang dapat meluncurkan situs melalui URL https://calibre.yourdomain.com .

Kesimpulan

Dalam tutorial ini, Anda belajar cara menginstal dan menjalankan server ebook Calibre dan menjalankannya di atas Nginx bersama dengan otentikasi pengguna dan dengan kemampuan untuk menambahkan buku secara otomatis. Jika Anda memiliki pertanyaan, kirimkan di komentar di bawah.


Ubuntu
  1. Cara Menginstal MySQL di Ubuntu 18.04

  2. Cara Memasang Server Minecraft di Ubuntu 18.04

  3. Cara Instal Zimbra 8.6 di Server Ubuntu 14.04

  1. Cara Menginstal Nginx di Ubuntu 20.04

  2. Cara Menginstal MariaDB di Ubuntu 20.04

  3. Cara Menginstal Server VNC Di Ubuntu 14.04

  1. Cara Instal OpenSIPS Server di Ubuntu 15.04

  2. Cara Menginstal Server Konsul di Ubuntu 16.04

  3. Cara Menginstal Zabbix di Ubuntu 18.04