Thứ sáu, 11/09/2020 | 00:00 GMT+7

Cách tạo server Ebook tầm cỡ trên Ubuntu 14.04

Calibre là một trình quản lý ebook open-souce và miễn phí.

Mặc dù Calibre có lẽ được biết đến nhiều hơn với ứng dụng client dành cho máy tính để bàn, nhưng nó cũng có thể hoạt động như một server mạnh mẽ, cho phép bạn truy cập ebook của bạn từ mọi nơi trên thế giới (hoặc chia sẻ bộ sưu tập của bạn với bạn bè). Giữ ebook của bạn trên server là điều tuyệt vời, vì bạn không phụ thuộc vào việc có cùng một thiết bị đọc với mình khi nào bạn muốn đọc. Và nếu bạn đi du lịch, bạn không cần phải lo lắng về việc mang theo bộ sưu tập ebook của bạn !

Server bao gồm một giao diện user trình duyệt đơn giản và trang nhã cho phép bạn tìm kiếm và download sách từ thư viện của bạn . Nó cũng có một trang web thân thiện với thiết bị di động được tích hợp sẵn, giúp bạn dễ dàng tải sách xuống ngay thiết bị đọc ebook - ngay cả với những sách chỉ có chức năng web cơ bản nhất.

Ví dụ: trình duyệt của Calibre hoạt động với Kindle Touch, có thể tải sách trực tiếp xuống mặc dù thiết bị chỉ có màn hình e-ink và trình duyệt thử nghiệm.

Trong hướng dẫn này, ta sẽ xem xét cách cài đặt, cài đặt và sử dụng Calibre trên server Ubuntu 14.04. Ta cũng sẽ xem xét cách sử dụng lệnh calibredb để tạo, tùy chỉnh và duy trì database ebook của bạn ngay từ server .

Đối với hướng dẫn này, ta sẽ đề cập đến:

  • Cài đặt Calibre
  • Tạo thư viện ebook hoặc nhập thư viện hiện có
  • Làm cho server Calibre trở thành một dịch vụ nền
  • Tự động thêm sách mới vào thư viện

Đến cuối hướng dẫn này, bạn sẽ có một thư viện nhỏ ban đầu mà bạn có thể dễ dàng thêm sách mới vào đó!

Yêu cầu

Hãy đảm bảo bạn có những yêu cầu sau:

Các ví dụ trong hướng dẫn này được hiển thị cho Server đang chạy bản cài đặt mới của Ubuntu 14.04, nhưng chúng phải dễ dàng thích ứng với các hệ điều hành khác.

Bước 1 - Cài đặt Calibre

Calibre có sẵn từ các repository APT, nhưng theo lời khuyên của những người tạo ra nó, tốt hơn hết là bạn nên cài đặt từ các mã binary được cung cấp trên trang web của họ. Calibre được cập nhật rất thường xuyên và version trong repository có xu hướng bị tụt hậu.

May mắn là những người tạo ra Calibre đã làm cho điều này rất đơn giản để thực hiện. Chỉ cần chạy lệnh Python sau trên server của bạn. Trước khi chạy lệnh, vui lòng kiểm tra kỹ trang web chính thức của Calibre trong trường hợp lệnh đã bị thay đổi.

Cài đặt Calibre (đảm bảo bạn cuộn để nhận toàn bộ lệnh):

sudo -v && wget -nv -O- https://raw.githubusercontent.com/kovidgoyal/calibre/master/setup/linux-installer.py | sudo python -c "import sys; main=lambda:sys.stderr.write('Download failed\n'); exec(sys.stdin.read()); main()" 

Bạn sẽ nhận 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, nhưng bạn có thể bỏ qua những cảnh báo này vì bạn đang cài đặt Calibre trên một server từ xa.

Bước 2 - Cài đặt phụ thuộc

calibredb công cụ dòng lệnh Calibre được sử dụng cho các hoạt động khác nhau trên thư viện Calibre của bạn, chẳng hạn như thêm hoặc nhập sách, tìm nạp metadata và bìa cho sách.

Ta sẽ xem xét cách sử dụng một số lệnh này sau, nhưng hiện tại ta sẽ chỉ cài đặt hai phần phụ thuộc. Đầu tiên là ImageMagick, nếu không có calibredb sẽ không chạy; và thứ hai là xvfb mà ta sẽ sử dụng để chạy calibredb trong server hiển thị X ảo - để tránh các sự cố do chạy Calibre trong môi trường không hiển thị.

Để cài đặt chúng, chỉ cần chạy các lệnh sau.

Cập nhật danh sách gói của bạn:

sudo apt-get update 

Cài đặt xvfb :

sudo apt-get install xvfb 

Cài đặt ImageMagick:

sudo apt-get install imagemagick 

Bước 3 - Tạo Thư viện

Bây giờ ta gần như đã sẵn sàng để bắt đầu chạy server . Tuy nhiên, ta cần lấy một số sách để phục vụ.

Có thể bạn đã có thư viện ebook của riêng mình, vì vậy ta sẽ xem xét hai cách để thực hiện việc này.

  1. Thêm file ebook trực tiếp; ta sẽ lấy một vài từ Dự án Gutenberg
  2. Nhập một thư viện Calibre hiện có; hữu ích nếu bạn đang chạy version Calibre trên máy tính để bàn

Nhận sách

Đầu tiên, hãy tạo một folder cho thư viện Calibre của ta . Ví dụ này tạo folder trong folder chính của user của bạn, mặc dù bạn có thể đặt nó ở bất kỳ đâu trên server . Chạy các lệnh sau:

mkdir ~/calibre-library mkdir ~/calibre-library/toadd 

Ta đã tạo hai folder : thư viện đầu tiên, ~/calibre-library~/calibre-library mà Calibre sẽ tự động sắp xếp, trong khi ta sẽ thêm sách theo cách thủ công vào thư toadd con toadd . Sau đó, ta sẽ xem xét cách tự động hóa quá trình này.

Làm thế nào ta sẽ lấy một số cuốn sách từ Dự án Gutenberg . Đối với hướng dẫn này, ta sẽ download Pride and Prejudice của Jane Austen và A Christmas Carol của Charles Dickens.

Thay đổi folder toadd để bắt đầu.

cd ~/calibre-library/toadd 

Download hai ebook :

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

Calibre phần nào dựa vào phần mở rộng file để thêm sách một cách chính xác, vì vậy cờ -O trong lệnh wget chỉ định một tên file thân thiện hơn. Nếu bạn đã download định dạng khác từ Gutenberg (chẳng hạn như .epub ) thì bạn cần thay đổi phần mở rộng file cho phù hợp.

Thêm sách vào database của Calibre

Bây giờ ta cần thêm những cuốn sách này vào database Calibre bằng cách sử dụng lệnh calibredb thông qua màn hình ảo xvfb mà ta đã cài đặt trước đó. Để làm điều này, hãy chạy:

xvfb-run calibredb add ~/calibre-library/toadd/* --library-path ~/calibre-library 

Dấu hoa thị nghĩa là Calibre sẽ thêm tất cả các sách được tìm thấy trong folder toadd vào thư viện, trong folder calibre-library . Bạn có thể gặp lỗi không tìm thấy bìa ( ta đã chọn download file .mobi không có hình ảnh), nhưng bạn cũng sẽ thấy xác nhận sách đã được thêm vào database Calibre.

Đầu ra mẫu:

Failed to read MOBI cover Backing up metadata Added book ids: 1, 2 Notifying calibre of the change 

Đó là tất cả những gì ta cần để bắt đầu nhìn thấy những kết quả đầu tiên. Hãy kiểm tra server . Chạy:

calibre-server --with-library ~/calibre-library 

Lệnh sẽ không tạo ra bất kỳ kết quả nào mà chỉ xuất hiện treo trong terminal của bạn. Điều này là tốt cho bây giờ; ta sẽ xem xét cách daemonizing nó đúng cách sau. Bây giờ, hãy mở trình duyệt web và chuyển đến:

  • http:// your_server_ip :8080

Thay your_server_ip bằng địa chỉ IP của Server. Bạn sẽ thấy trang chính của thư viện của bạn , trông giống như ảnh chụp màn hình bên dưới.

Trang chủ tầm cỡ

Nếu bạn nhấp vào liên kết Tất cả sách , bạn sẽ thấy hai cuốn sách mà ta đã thêm trước đó. Bạn có thể nhấp vào nút Nhận bên dưới một trong hai cuốn sách để download .

Xem sách của bạn

Tải lên Thư viện Calibre hiện có

Nếu bạn đang chạy version Calibre dành cho máy tính để bàn và đã cài đặt thư viện, bạn có thể dễ dàng nhập nó vào server của bạn .

Kiểm tra kỹ folder thư viện hiện tại của bạn để tìm file có tên là metadata.db Nếu file này tồn tại, thì mọi thứ sẽ hoạt động mà không cần bất kỳ cấu hình bổ sung nào.

Tải toàn bộ folder thư viện của bạn lên server của bạn.

Sau đó, chạy lệnh này:

calibre-server --with-library /path/to/calibre-library 

Thao tác này sẽ thêm toàn bộ thư viện hiện có của bạn vào server . Bạn có thể thêm nhiều sách hơn vào nó trên server bằng cách đặt các file sách vào folder toadd , như được giải thích trong hướng dẫn này.

Bước 4 - Làm cho Calibre trở thành một dịch vụ nền

Ta không thực sự muốn giữ một shell mở với lệnh calibre-server đang chạy trong đó chỉ để giữ cho server hoạt động.

Mặc dù ta có thể thêm cờ --daemonize vào lệnh, nhưng có nhiều cách tốt hơn để làm điều đó. Dưới đây ta sẽ xem xét cách dễ dàng biến calibre-server thành một dịch vụ để nó sẽ tự động bắt đầu khi server khởi động lại hệ thống và để ta có thể bắt đầu, dừng hoặc khởi động lại quá trình một cách dễ dàng.

Cho đến gần đây, cách để đạt được điều này là viết các tập lệnh phức tạp và đặt chúng vào folder /etc/init.d/ . Cách được khuyến khích hiện tại là sử dụng một tập lệnh Upstart đơn giản hơn nhiều, đó là một file .conf được đặt trong folder /etc/init/ . Ta sẽ xem xét cách thực hiện việc này:

Nếu server vẫn đang chạy, hãy nhấn CTRL + C trong terminal của bạn để dừng nó.

Bây giờ, hãy tạo một file cấu hình mới:

sudo nano /etc/init/calibre-server.conf 

Tạo tập lệnh Khởi động, đảm bảo thay thế các biến được đánh dấu màu đỏ :

description "Calibre (ebook manager) content server"  start on runlevel [2345] stop on runlevel [^2345]  respawn  env USER='myusername' env PASSWORD='mypassword' env LIBRARY_PATH='/home/user/calibre-library' env MAX_COVER='300x400' env PORT='80'  script     exec /usr/bin/calibre-server --with-library $LIBRARY_PATH --auto-reload \                                  --max-cover $MAX_COVER --port $PORT \                                  --username $USER --password $PASSWORD end script 

Dán nó vào editor của bạn và lưu nó. (CTRL + X, sau đó Y, sau đó ENTER). Ta sẽ xem xét những gì mỗi dòng làm bên dưới:

  • Dòng đầu tiên chỉ là mô tả để giúp bạn (hoặc những người khác) biết tập lệnh làm gì
  • Hai dòng tiếp theo cho biết bạn muốn tập lệnh của bạn bắt đầu và dừng ở cấp độ nào, vì Upstart cho phép đặc tả thứ tự để các tập lệnh dựa vào nhau sẽ bắt đầu theo đúng thứ tự. Cấp độ 1 dành cho tất cả các dịch vụ thiết yếu, vì vậy ta sẽ bắt đầu ở cấp độ 2, khi đó ta biết rằng mạng và bất kỳ thứ gì khác ta cần sẽ hoạt động
  • respawn nghĩa là nếu dịch vụ dừng đột ngột, nó sẽ cố gắng khởi động lại

Các dòng tiếp theo là tất cả các biến mà ta chuyển đến lệnh calibre-server . Trước đây, ta chỉ sử dụng mức tối thiểu để chỉ định tùy chọn --with-library , nhưng bây giờ ta có thể thấy mức độ linh hoạt mà Calibre mang lại. Ở trên, ta đã chỉ định:

  • Tên user và password để truy cập thư viện từ web (vui lòng thay đổi chúng từ các ví dụ được cung cấp)
  • Đường dẫn vị trí thư viện, như trước đây
  • Kích thước hình ảnh tối đa cho hình ảnh bìa sách (điều này hữu ích để làm cho trang tải nhanh hơn)
  • Số cổng (ở đây ta đã thay đổi nó thành 80 ; thay đổi số này thành thứ khác nếu bạn đã sử dụng cổng 80 để cung cấp các trang web chuẩn, v.v.)
  • Cuối cùng, trong phần script (được gọi là stanza ), ta chạy lệnh chính bằng cách sử dụng thi exec và chuyển vào tất cả các biến của ta . Phần /usr/bin/calibre-server là đường dẫn đến file thực thi

Khi bạn đã lưu tập lệnh và đóng editor , hãy khởi động server :

sudo start calibre-server 

Lần này, bạn sẽ thấy kết quả này, nhưng với một số quy trình khác:

calibre-server start/running, process 7811 

Bây giờ, hãy sử dụng trình duyệt để chuyển đến địa chỉ IP hoặc domain của server của bạn.

Bạn sẽ thấy một biểu mẫu bật lên yêu cầu tên user và password . Đây phải là những cái bạn đã thêm vào tập lệnh Upstart. Nhập những thứ này và bạn sẽ được đưa đến thư viện ebook của bạn như trước đây.

Server hiện có thể dễ dàng dừng, khởi động và khởi động lại bằng các lệnh sau:

sudo service calibre-server stop sudo service calibre-server start sudo service calibre-server restart 

Điều này làm cho việc quản lý server dễ dàng hơn rất nhiều so với việc phải xử lý thủ công các quy trình daemon và ID quy trình!

Theo mặc định, trang web có version di động hoạt động tốt với các thiết bị màn hình nhỏ hơn như điện thoại và thiết bị đọc ebook . Điều này sẽ tự động tải nếu bạn truy cập trang web từ thiết bị di động.

Bước 5 - Tạo công việc Cron để thêm sách tự động

Ta có thể viết một công việc cron đơn giản để xem folder toadd của ta cho những cuốn sách mới.

Cứ sau 10 phút, nó sẽ tìm kiếm các file trong folder /home/ user /calibre-library/toadd/ , thêm các file nào trong đó vào database Calibre của ta , sau đó xóa các file root . (Calibre tạo bản sao của các file khi nó thêm chúng vào thư viện của ta , vì vậy ta không cần bản root khi phần bổ sung có hiệu lực.) Điều này nghĩa là nếu bạn chuyển các file sách qua scp, ssh, v.v. vào folder này từ máy chính, hoặc chỉ cần tải chúng trực tiếp vào folder toadd , sau đó chúng sẽ tự động được thêm vào database Calibre của bạn và có sẵn để download từ thư viện của bạn!

Để tạo một công việc cron, hãy thực thi:

crontab -e 

Bạn có thể phải lựa chọn editor ưa thích của bạn .

Ở cuối file , thêm dòng:

*/10 * * * * xvfb-run calibredb add /home/user/calibre-library/toadd/ -r --with-library /home/user/calibre-library && rm /home/user/calibre-server/toadd/* 

Phần đầu tiên của lệnh ( */10 * * * * ) nghĩa là lệnh phải được chạy mười phút một lần. Phần thứ hai giống với lệnh mà ta đã chạy thủ công trước đó. Nó thêm tất cả các sách từ folder toadd vào database và sau đó xóa các file root .

Đó là điều đó. Như vậy, bạn có thể truy cập ebook của bạn từ mọi nơi trên thế giới.

Lưu ý: Kết quả tìm kiếm trong Calibre không được sắp xếp theo mức độ liên quan, vì vậy nếu bạn nhập một cụm từ phổ biến, bạn thường tìm thấy những cuốn sách không liên quan trước cuốn bạn đang tìm. Tuy nhiên, bạn có thể chỉ định chỉ tìm kiếm theo tiêu đề hoặc tác giả, điều này giúp ích rất nhiều và các tùy chọn duyệt (duyệt theo thứ tự bảng chữ cái theo Tác giả chẳng hạn) cũng được triển khai rất tốt.

Kết luận

Có một hoặc hai điều cần ghi nhớ về việc chạy và bảo trì server Calibre. Ta sẽ xem xét ngắn gọn những điều này để kết thúc.

Nếu bạn chỉ lưu trữ sách từ Gutenberg hoặc các trang tương tự (tức là sách hết bản quyền), thì có rất ít điều để nói. Chỉ cần đảm bảo bạn tuân theo các điều khoản dịch vụ của Gutenberg. Cụ thể, nếu bạn cấp quyền truy cập vào bộ sưu tập sách của bạn cho người khác, hãy nhớ đọc phần ĐKDV của Gutenberg liên quan đến việc phân phối lại .

Nếu bạn đang lưu trữ sách được mua thương mại, hãy nhớ rằng chúng có thể sẽ có DRM (Quản lý quyền kỹ thuật số) và do đó sẽ chỉ có thể đọc được từ thiết bị đã đăng ký của bạn.

Không cần phải nói rằng bạn không bao giờ được lưu trữ sách lậu hoặc bất hợp lệ trên server ebook của bạn .

Cập nhật

Calibre đẩy các bản cập nhật rất thường xuyên. Mặc dù hầu hết trong số này là các bản sửa lỗi và cập nhật chức năng, một số có thể liên quan đến bảo mật. Do đó, bạn nên cập nhật các bản cập nhật .

Nếu một bản cập nhật quan trọng được xuất bản, bạn nên cập nhật thủ công phần mềm server . ( , các repo APT có xu hướng bị tụt hậu, vì vậy không nên dựa vào chúng để cập nhật).

Bảo vệ

Ngay cả khi bạn không công bố địa chỉ IP của Server của bạn , nó có thể bị phát hiện bằng cách quét tập lệnh cho các cổng đang mở. Vì chức năng đăng nhập Calibre không cho phép tự động khóa sau một số lần thử không chính xác, nên có khả năng xảy ra một cuộc tấn công vũ phu. Để giảm thiểu điều này, ta khuyên bạn nên:

  • Không sử dụng tên user phổ biến như administrator , tầm cỡ hoặc ebook
  • Không sử dụng password chung hoặc password ngắn và chắc chắn không sử dụng tên user của bạn làm password
  • Cân nhắc chạy Calibre trên một cổng không chuẩn, thay vì cổng 80

Và điều đó kết thúc hướng dẫn của ta . Ta hy vọng rằng bạn thích truy cập ebook của bạn từ bất kỳ vị trí hoặc thiết bị nào!


Tags:

Các tin liên quan

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
Cách sử dụng ngôn ngữ AWK để thao tác văn bản trong Linux
2020-05-26
Cách thiết lập Nền tảng Cloud IDE server mã trên Ubuntu 20.04
2020-05-20
Khái niệm cơ bản về việc sử dụng Sed Stream Editor để thao tác văn bản trong Linux
2020-05-19
Sedan trung gian: Thao tác các dòng văn bản trong môi trường Linux
2020-05-19