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
- Server chạy Ubuntu 18.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ủa ta để được hướng dẫn .
- Bước 7 bao gồm tùy chọn để bảo mật server Nội dung tầm cỡ 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.
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 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 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:
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:
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.
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:
## 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:
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:
*/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 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 tầm cỡ:
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ặ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:// 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.
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.042020-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