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
-
Server berbasis Ubuntu 20.04 dengan pengguna dengan hak sudo.
-
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.