Cách tạo server Ebook calibre trên Ubuntu 20.04
caliber là một trình quản lý ebook open-souce và miễn phí, nổi tiếng với ứng dụng máy tính để bàn đa nền tảng. Bạn có thể sử dụng tầm cỡ để quản lý thư viện ebook của bạn trên một thiết bị, nhưng ứng dụng này cũng bao gồm một thành phần server mạnh mẽ. Cài đặt server ebook cho phép bạn:- Truy cập sách của bạn từ mọi nơi trên thế giới
- Dễ dàng chuyển sách của bạn sang thiết bị di động
- Chia sẻ sách với bạn bè và gia đình của bạn
Server Nội dung calibre bao gồm một phần mềm backend để cung cấp sách của bạn và một giao diện user cơ bản để tìm kiếm trong thư viện của bạn , download các đầu sách riêng lẻ hoặc thậm chí đọc sách của bạn trực tiếp thông qua trình duyệt web. Server cũng cung cấp giao diện di động cơ bản hoạt động với nhiều loại thiết bị, bao gồm các trình duyệt cơ bản đi kèm với nhiều đầu đọc e-ink như Kindle và Kobo.
Trong hướng dẫn này, bạn sẽ cài đặt và sử dụng server Nội dung calibre trên Ubuntu 20.04. Cụ thể, bạn sẽ download và cài đặt server calibre, cấu hình server calibre như một dịch vụ để nó tự động khởi động khi server khởi động lại và thêm sách vào thư viện của bạn bằng các công cụ dòng lệnh. Bạn cũng sẽ gặp phải các tùy chọn để cài đặt cron job để tự động thêm sách mới vào thư viện của bạn từ một folder cụ thể, thêm xác thực vào server để chỉ bạn mới có thể truy cập và thêm certificate SSL / TLS miễn phí để phục vụ thư viện của bạn HTTPS để tăng cường bảo mật.
Cảnh báo: Như với tất cả nội dung sáng tạo, điều quan trọng là phải tôn trọng giấy phép bản quyền liên quan đến tài liệu do người khác tạo ra. Hướng dẫn này sử dụng sách domain công cộng được download hợp lệ từ Dự án Gutenberg , công ty có hơn 60.000 ebook miễn phí.
Yêu cầu
- Server chạy Ubuntu 20.04 với user sudo và firewall . Bạn có thể làm theo Hướng dẫn Cài đặt Server Ban đầu để được hướng dẫn .
- Bước 7 bao gồm tùy chọn để bảo mật server Nội dung calibre của bạn bằng certificate SSL. Nếu bạn muốn làm như vậy, bạn sẽ yêu cầu một domain có sẵn bản ghi A. Nếu bạn đang sử dụng DigitalOcean Server , bạn có thể làm theo hướng dẫn về [Cách trỏ đến server tên DigitalOcean từ công ty đăng ký domain phổ biến] (digitalocean.com/community/tutorials/how-to-point-to-digitalocean-nameservers-from-common -công ty đăng ký domain ) để được hướng dẫn.
Bước 1 - Download và cài đặt Server nội dung calibre
Mặc dù calibre tồn tại trong repository của Ubuntu, nhưng version ở đó thường trễ hơn bản phát hành mới nhất. Do đó, tài liệu chính thức về calibre khuyên bạn nên cài đặt nó từ file binary được lưu trữ trên trang web của họ.
Đầu tiên, hãy cài đặt một số phụ thuộc cần thiết:
- sudo apt update && sudo apt install -y libfontconfig libgl1-mesa-glx
Bây giờ download và cài đặt server calibre.
- wget https://download.calibre-ebook.com/linux-installer.sh
Kiểm tra nội dung của script:
- less linux-installer.sh
Bạn có thể cuộn lên và xuống bằng các phím k
và j
và nhấn q
để quay lại terminal khi bạn hoàn tất.
Bây giờ thực thi tập lệnh để cài đặt calibre:
- sudo sh linux-installer.sh
caliber mong đợi một môi trường máy tính để bàn nhưng nó sẽ không tìm thấy một môi trường trên server không đầu, vì vậy bạn sẽ thấy một số cảnh báo về việc tích hợp máy tính để bàn không thành công. Có thể yên tâm bỏ qua những điều này vì ta sẽ kiểm soát calibre hoàn toàn thông qua các công cụ dòng lệnh và giao diện web của nó.
Bây giờ ta đã cài đặt caliber, ta có thể bắt đầu khám phá chức năng của nó.
Bước 2 - Tạo thư viện và thêm sách đầu tiên của bạn
Để khám phá chức năng của .epub
, hãy download ebook .epub
hoặc .mobi
. Ta sẽ sử dụng A Christmas Carol của Charles Dickens từ Dự án Gutenberg làm ví dụ. Dự án Gutenberg duy trì một repository khổng lồ các tài liệu miễn phí trên domain công cộng và là một nguồn tài nguyên tuyệt vời cho ebook .
Chạy lệnh sau để tải sách này xuống server :
- wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi
Bây giờ, hãy tạo một folder calibre có thể sử dụng làm thư viện ebook của bạn:
- mkdir calibre-library
Và thêm sách bạn vừa download vào thư viện mới của bạn bằng lệnh calibredb
:
- calibredb add *.mobi --with-library calibre-library/
Bạn sẽ thấy kết quả sau:
Added book ids: 1
Với một cuốn sách được thêm vào thư viện của bạn, bây giờ bạn có thể bắt đầu calibre và khám phá ứng dụng.
Bước 3 - Chạy Server Nội dung calibre và Xem Thư viện của Bạn
Với việc cài đặt calibre và một cuốn sách đã được download , ta đã sẵn sàng khám phá giao diện user của ứng dụng. Nhưng trước khi ta truy cập server Nội dung calibre trong trình duyệt web, ta cần đảm bảo server có thể chấp nhận lưu lượng truy cập trên cổng 8080
, đây là cổng mặc định cho calibre. Nếu bạn đã làm theo hướng dẫn cài đặt server ban đầu trong phần yêu cầu , thì bạn đã bật ufw
hoặc Tường lửa không phức tạp . Đến đây bạn cần cho phép cổng 8080
thông qua firewall .
Sử dụng lệnh sau để mở cổng 8080
:
- sudo ufw allow 8080
Kiểm tra trạng thái của ufw
đảm bảo cổng đang mở:
- sudo ufw status
Bạn sẽ thấy một kết quả như thế này:
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 8080 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 8080 (v6) ALLOW Anywhere (v6)
Bây giờ hãy chạy lệnh sau để khởi động server nội dung calibre:
- calibre-server calibre-library
calibre-server
là lệnh được sử dụng để khởi động server và calibre-library
là tên của folder ta đã tạo trước đó và yêu cầu caliber sử dụng làm thư viện .
Bạn sẽ thấy một kết quả như thế này:
calibre server listening on 0.0.0.0:8080 OPDS feeds advertised via BonJour at: your_server_ip port: 8080
Từ máy local của bạn, hãy truy cập your_server_ip :8080
(thay thế địa chỉ IP của server ) và bạn sẽ thấy màn hình cỡ mặc định. Nhấp vào thư viện calibre và bạn sẽ thấy cuốn sách mà bạn đã thêm ở bước trước.
Nhấn Ctrl+C
để dừng quá trình server thủ công mà bạn đã bắt đầu.
Phương pháp chạy server Nội dung calibre này hoạt động tốt, nhưng bạn có thể cần thư viện của bạn hoạt động mọi lúc, ngay cả sau khi bạn đóng kết nối SSH với server . Để đảm bảo nó luôn chạy, ngay cả sau khi khởi động lại server , hãy biến server Nội dung calibre thành một dịch vụ.
Bước 4 - Tạo Dịch vụ cho Server Nội dung calibre
Để cải thiện khả năng sử dụng của server Nội dung calibre, hãy thay thế quy trình server thủ công bằng một dịch vụ sẽ bắt đầu khi server khởi động .
Đầu tiên, tạo một file có tên là calibre-server.service
trong folder /etc/sytemd/system/
:
- sudo nano /etc/systemd/system/calibre-server.service
Bây giờ hãy thêm các cấu hình sau, cấu hình này sẽ khởi động server Nội dung calibre khi khởi động. Đảm bảo thay thế văn bản được đánh dấu bằng user và group của bạn:
## startup service [Unit] Description=calibre content server After=network.target [Service] Type=simple User=sammy Group=sammy ExecStart=/opt/calibre/calibre-server /home/sammy/calibre-library --enable-local-write [Install] WantedBy=multi-user.target
Ở đây ta yêu cầu dịch vụ của bạn sử dụng cờ --enable-local-write
khi khởi động server . Khi server đang chạy, bạn không thể sử dụng lệnh calibredb
để thêm sách như ta đã làm cho A Christmas Carol trực tiếp. Thay vào đó, bạn phải thực hiện việc này “thông qua” server đang chạy, như ta sẽ thấy một chút và điều này nghĩa là server cần quyền để ghi file mới vào đĩa. Cờ này cho phép nó làm như vậy miễn là nó nhận được yêu cầu local .
Lưu file .
Bây giờ hãy kích hoạt dịch vụ và khởi động nó:
- sudo systemctl enable calibre-server
- sudo systemctl start calibre-server
Khởi động lại server :
- sudo reboot
Chờ vài phút rồi truy cập lại http:// your_server_ip :8080
trong trình duyệt web local của bạn đảm bảo server Nội dung calibre đã tự động khởi động.
Bây giờ hãy thêm một số xác thực vào ứng dụng .
Bước 5 - (Tùy chọn) Thêm xác thực user vào server nội dung calibre
Đến đây bạn có một server Nội dung calibre hoạt động đầy đủ mà bạn có thể truy cập từ mọi thiết bị. Tuy nhiên, hiện tại, bất kỳ ai biết địa chỉ IP server đều có thể truy cập ebook của bạn. Bạn có thể không muốn điều này. Thay vào đó, hãy cấu hình hệ thống quản lý user tích hợp của Calre để bạn có thể buộc khách truy cập xác thực bằng tên user và password .
Đầu tiên, SSH trở lại server và dừng calibre. Điều này sẽ cho phép ta thao tác trực tiếp database của Calre:
- sudo systemctl stop calibre-server
Bây giờ hãy bắt đầu tập lệnh quản lý user của Calre:
- calibre-server --manage-users
Khi được yêu cầu , hãy chọn thêm user mới. Sau đó chọn tên user và password mạnh. Bạn sẽ thấy một thông báo kết quả cuối cùng như sau:
User mycalibreuser added successfully!
Bây giờ ta cần thực hiện một chỉnh sửa nhỏ đối với dịch vụ của bạn .
Mở lại calibre-server.service
:
- sudo nano /etc/systemd/system/calibre-server.service
Để kích hoạt xác thực, hãy thêm cờ --enable-auth
vào cuối dòng bắt đầu ExecStart
. Nó sẽ giống như thế này:
. . . ExecStart=/opt/calibre/calibre-server /home/sammy/calibre-library --enable-local-write --enable-auth . . .
Lưu file .
Làm mới daemon dịch vụ để quét lại các file dịch vụ và khởi động lại server calibre với:
- sudo systemctl daemon-reload
- sudo systemctl start calibre-server
Nếu bạn truy cập lại thư viện của bạn , bây giờ nó sẽ nhắc bạn nhập tên user và password trước khi cho phép bạn truy cập.
Có nhiều cách khác để thêm chức năng vào server Nội dung calibre . Trong bước tiếp theo, ta sẽ thêm một công việc cron để tự động thêm sách đã download vào thư viện calibre .
Bước 6 - (Tùy chọn) Tự động thêm sách vào thư viện calibre của bạn
Nó có thể hữu ích khi cài đặt một công việc cron theo dõi một folder cụ thể và thêm bất kỳ cuốn sách nào mà nó tìm thấy vào thư viện calibre của bạn. Bằng cách này, bạn có thể download hoặc tải sách lên folder này và chúng sẽ tự động có sẵn thông qua giao diện web calibre.
Tạo một folder có tên là books-to-add
trong folder chính của bạn và chuyển bên trong:
- mkdir ~/books-to-add
- cd ~/books-to-add
Download một cuốn sách mới vào folder này. Sử dụng lệnh sau để download Alice in Wonderland từ Project Gutenberg:
- wget https://www.gutenberg.org/ebooks/11.epub.images -o alice.epub
Bây giờ hãy mở crontab của bạn:
- crontab -e
Ở đây, ta sẽ cài đặt một tập lệnh để thêm tất cả các file trong folder này vào calibre và sau đó xóa chúng (thêm sách vào calibre sẽ tạo bản sao của file trong folder thư viện của bạn, vì vậy ta có thể xóa bản root sau khi chúng được thêm vào.)
Thêm nội dung sau:
*/5 * * * * calibredb add /home/sammy/books-to-add/ -r --with-library http://localhost:8080#calibre-library --username mycalibreuser --password StrongPassword! && rm -r /home/sammy/books-to-add/*
Lưu file .
Quá trình này sẽ chạy 5 phút một lần, vì vậy bạn không cần phải đợi lâu để cuốn sách mới của bạn hiển thị trong giao diện web. Chờ một vài phút rồi reload thư viện trong trình duyệt web local của bạn. Cuốn sách mới của bạn sẽ xuất hiện bên cạnh A Christmas Carol .
Bước 7 - (Tùy chọn) Cài đặt Apache2 và Cung cấp Thư viện của bạn qua HTTPS
Bạn cần tên user và password để truy cập thư viện của bạn , nhưng nó không thực sự an toàn vì bạn đang cung cấp nó qua HTTP và gửi tên user và password của bạn không được mã hóa mỗi khi bạn xác thực. Một tùy chọn an toàn hơn là đảm bảo tất cả truy cập được mã hóa bằng HTTPS. Nếu bạn sở hữu một domain , bạn có thể trỏ domain này đến server và cài đặt certificate SSL miễn phí bằng Let's Encrypt. (Bạn cũng có thể sử dụng domain phụ như ebooks. your_domain
.)
Cài đặt và cấu hình Apache2
Ta sẽ sử dụng web server Apache2 làm Reverse Proxy cho calibre. Trước đây, ta phải thêm số cổng :8080
khi ta truy cập thư viện của bạn vì đó là cổng mặc định chạy trên đó. Bây giờ, ta sẽ cài đặt Apache2 để lắng nghe các yêu cầu trên cổng 80
(cổng mặc định cho truy cập HTTP ), các yêu cầu proxy tới server calibre đang chạy local trên :8080
và cung cấp những yêu cầu này cho user cuối một cách minh bạch để họ không cần lo lắng về việc chỉ định số cổng. Sau đó, ta sẽ bảo mật tất cả lưu lượng của bạn trên cổng 443
bằng certificate SSL.
Cài đặt Apache2 và kích hoạt các module proxy ta cần bằng các lệnh sau:
- sudo apt install -y apache2
- sudo a2enmod proxy proxy_http
Bây giờ hãy đảm bảo server cho phép lưu lượng truy cập trên các cổng 80
và 443
. Đóng cổng 8080
cũng vậy:
- sudo ufw allow 'Apache Full'
- sudo ufw delete allow 8080
Tiếp theo, tạo và mở một file tại /etc/apache2/sites-available/ your_domain .conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Thêm các cấu hình sau, cấu hình này sẽ liên kết domain của bạn với server calibre:
LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_http_module modules/mod_proxy_http.so <VirtualHost *:80> ServerName your_domain AllowEncodedSlashes On ProxyPreserveHost On ProxyPass "/" "http://localhost:8080/" </VirtualHost>
Cuối cùng, kích hoạt cấu hình trang web mới này:
- sudo a2ensite your_domain.conf
- systemctl reload apache2
Truy cập http:// your_domain
trong trình duyệt để xác minh server Nội dung calibre tải. Apache hiện đang phục vụ trang web .
Cài đặt Certbot và cấu hình certificate SSL
Bước cuối cùng, hãy bảo mật tất cả lưu lượng truy cập của bạn bằng Certbot .
Đầu tiên, hãy cài đặt Certbot:
- sudo snap install --classic certbot
Bây giờ chạy Certbot:
- sudo certbot --apache
Chương trình Certbot sẽ đưa bạn qua một loạt dấu nhắc để cài đặt certificate .
- Nhập địa chỉ email của bạn khi được yêu cầu
- Nhập
A
để đồng ý với các điều khoản và điều kiện khi được yêu cầu - Chọn
Y
hoặcN
khi được yêu cầu chia sẻ địa chỉ email của bạn với EFF - Chọn
1
khi được yêu cầu về domain bạn muốn certificate (chỉ nên có một)
Sau khi hoàn thành, bạn sẽ thấy một thông báo chúc mừng.
Như vậy, bạn có thể truy cập thư viện của bạn một cách an toàn tại https:// yourdomain
.
Kết luận
Trong hướng dẫn này, bạn cài đặt một server ebook calibre. Bạn đã biến nó thành một dịch vụ để nó sẽ khởi động khi server khởi động, thêm công việc cron để tự động tìm và thêm sách mới vào thư viện của bạn, đồng thời cài đặt xác thực và certificate SSL để bảo mật nó.
Để mở rộng dự án, bạn có thể thêm nhiều sách hơn từ thư viện cá nhân của bạn hoặc từ Project Gutenberg , Standard Ebooks hoặc bất kỳ nơi nào khác. Hãy nhớ luôn tôn trọng mọi luật bản quyền liên quan đến thư viện nội dung của bạn.
Các tin liên quan
Cách sử dụng server SMTP của Google2020-10-05
Những điều cần biết về SSH: Làm việc với server, client và Khóa SSH
2020-09-17
Cách thiết lập server VPN IKEv2 với StrongSwan trên Ubuntu 20.04
2020-09-16
Cách tạo server Ebook tầm cỡ trên Ubuntu 14.04
2020-09-11
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Ubuntu 20.04
2020-07-23
Cách bật tính năng hiển thị phía server cho ứng dụng React
2020-07-14
Cách cài đặt và cấu hình Postfix làm server SMTP chỉ gửi trên Ubuntu 18.04
2020-07-06
Cách thiết lập Nền tảng Cloud IDE server mã trên CentOS 7
2020-06-12
Cách thiết lập Nền tảng Cloud IDE server mã trên Debian 10
2020-06-11
Sử dụng Grep & Biểu thức chính quy để tìm kiếm các mẫu văn bản trong Linux
2020-06-05