Thứ ba, 27/10/2020 | 00:00 GMT+7

Cách tạo Server Ebook trên Ubuntu 18.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 tầm cỡ 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 tầm cỡ trên Ubuntu 18.04. Cụ thể, bạn sẽ download và cài đặt server tầm cỡ, cấu hình server tầm cỡ như một dịch vụ để nó tự động khởi động khi server của bạn 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 của bạn để 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

Bước 1 - Download và cài đặt Server nội dung tầm cỡ

Mặc dù tầm cỡ 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ề tầm cỡ 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 tầm cỡ.

  • 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 kj 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 tầm cỡ:

  • 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 tầm cỡ hoàn toàn thông qua các công cụ dòng lệnh và giao diện web của nó.

Sau khi cài đặt, hãy đảm bảo đặt quyền sở hữu file ~./config/ cho user và group của bạn chứ không phải root . Đây là điều quan trọng để caliber hoạt động bình thường.

Thay đổi quyền sở hữu, thay thế văn bản được đánh dấu bằng user và group sudo của bạn:

  • sudo chown sammy:sammy ~/.config/

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 của bạn:

  • wget http://www.gutenberg.org/ebooks/46.kindle.noimages -O christmascarol.mobi

Bây giờ, hãy tạo một folder tầm cỡ 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:

Output
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 tầm cỡ và khám phá ứng dụng.

Bước 3 - Chạy Server Nội dung tầm cỡ và Xem Thư viện của Bạn

Với việc cài đặt tầm cỡ 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 tầm cỡ trong trình duyệt web, ta cần đảm bảo server của ta 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 tầm cỡ. 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 rằng cổng đang mở:

  • sudo ufw status

Bạn sẽ thấy một kết quả như thế này:

Output
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 tầm cỡ:

  • calibre-server calibre-library

calibre-server là lệnh được sử dụng để khởi động server của ta 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 của ta .

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 của bạn) trong trình duyệt web và bạn sẽ thấy màn hình cỡ đại mặc định. Nhấp vào thư viện tầm cỡ và bạn sẽ thấy cuốn sách mà bạn đã thêm ở bước trước.

menu  server  tầm 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 tầm cỡ 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 của bạn . Để đảm bảo nó luôn chạy, ngay cả sau khi khởi động lại server của bạn, hãy biến server Nội dung tầm cỡ thành một dịch vụ.

Bước 4 - Tạo Dịch vụ cho Server Nội dung tầm cỡ

Để cải thiện khả năng sử dụng của server Nội dung tầm cỡ, hãy thay thế quy trình server thủ công của ta 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 tầm cỡ 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:

caliber-server.service
## 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 đối với A Christmas Carol . Thay vào đó, bạn phải thực hiện việc này thông qua server đang chạy 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 và đóng 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 của bạn:

  • 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 rằng server Nội dung tầm cỡ đã tự động khởi động.

Bây giờ hãy thêm một số xác thực vào ứng dụng của ta .

Bước 5 - (Tùy chọn) Thêm xác thực user vào server nội dung tầm cỡ

Đến đây bạn có một server Nội dung tầm cỡ 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 của bạn đề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 của bạn và dừng tầm cỡ. Đ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:

Output
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 và đóng 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 tầm cỡ 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 tầm cỡ của ta . 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 tầm cỡ của ta .

Bước 6 - (Tùy chọn) Tự động thêm sách vào thư viện tầm cỡ 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 tầm cỡ 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 tầm cỡ.

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 tầm cỡ và sau đó xóa chúng (thêm sách vào tầm cỡ sẽ tạo ra một bản sao của các 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:

/ var / spool / cron / crontabs / your_username
*/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 và đóng 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 của bạn 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 tầm cỡ. 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 tầm cỡ đ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 của bạn cho phép lưu lượng truy cập trên các cổng 80443 . Đó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 tầm cỡ:

/etc/apache2/sites-available/your_domain.conf
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 tầm cỡ 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ặc N 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:// your_domain .

Kết luận

Trong hướng dẫn này, bạn cài đặt một server ebook tầm cỡ. Bạn đã biến nó thành một dịch vụ để nó sẽ khởi động khi server của bạn 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.


Tags:

Các tin liên quan

Cách thiết lập một đường ống triển khai liên tục với GitLab CI / CD trên Ubuntu 18.04
2020-10-26
Cách cài đặt và bảo mật phpMyAdmin trên Ubuntu 20.04
2020-10-22
Cách cài đặt BigBlueButton trên Ubuntu 16.04
2020-10-21
Cách đồng bộ hóa và chia sẻ file với Seafile trên Ubuntu 18.04
2020-10-15
Cách cài đặt MongoDB từ Kho lưu trữ APT mặc định trên Ubuntu 20.04
2020-10-10
Cách cài đặt mongodb trên ubuntu 18.04 từ trang chủ Mongodb
2020-10-08
Cách bảo mật MongoDB trên Ubuntu 18.04
2020-10-08
Cách cấu hình quyền truy cập từ xa cho MongoDB trên Ubuntu 18.04
2020-10-08
Cách cài đặt MongoDB trên Ubuntu 18.04 từ kho APT mặc định
2020-10-08
Làm thế nào để quản lý client OpenSSH trên Ubuntu 18.04
2020-09-30