Hướng dẫn cài đặt Calibre-Web trên Ubuntu Server

Giới thiệu

Calibre-Web là ứng dụng trên nền web cho phép bạn duyệt, đọc và tải sách được lưu trữ trong cơ sở dữ liệu của Calibre.

Ưu điểm:

  • Miễn phí, miễn phí và miễn phí
  • Mã nguồn mở
  • Giao diện khá rõ ràng, đọc trực tiếp tốc độ cũng khá nhanh.
  • Hỗ trợ giao diện tối trong cả giao diện ứng dụng lẫn giao diện đọc sách(Không áp dụng với file pdf).
  • Hỗ trợ định dạng mà Calibre hỗ trợ.
  • Hỗ trợ đọc ebook trực tiếp trên trình duyệt (.txt, .epub, .pdf, .cbr, .cbt, .cbz, .djvu).
  • Hỗ trợ tải lên sách từ trình duyệt.
  • Có chức năng đăng ký người dùng, chia sẻ cho số lượng người nhất định để dùng chung - quá hay 😁😁😁.

Yêu cầu hệ thống

Cài đặt

Cài đặt gói cần thiết

sudo apt install python3-pip

Tiến hành cài đặt

pip install calibreweb

Ngoài ra bạn có thể dùng

pip install calibreweb[tùy-chọn]

với các tùy chọn có thể xem ở đây.
OK, giờ chạy thử lệnh cps, qua cửa sổ ssh khác kiểm tra lại bằng lệnh curl localhost:8083, nếu có kết quả hiện ra là Calibre-Web đang chạy rồi đó. Ấn Crlt+C để ngưng và tiến hành bước tiếp theo.
Kiểm tra xem cps được lưu ở đâu

which cps

Thường là ở /home/{Username}/.local/bin/cps. Trong đó {Username} là tên tài khoản của bạn.

Cài đặt Calibre-Web khởi động bằng systemd

Tạo file cps.service ở thư mục /etc/systemd/system/

sudo nano /etc/systemd/system/cps.service

và nhập vào nội dung như sau

[Unit]
Description=Calibre-Web

[Service]
Type=simple
User={Username}
ExecStart=/home/{Username}/.local/bin/cps

[Install]
WantedBy=multi-user.target

Thay {Username} bằng tên tài khoản của bạn.
Làm cho systemd nhận cấu hình mới, tải lại và khởi động Calibre-Web.

sudo systemctl daemon-reload
sudo systemctl enable --now cps.service
sudo systemctl start cps.service

Kiểm tra hoạt động chưa

systemctl status cps.service

Hiện ra như hình là được rồi đó.

Cấu hình Nginx

Tạo file cấu hình Nginx

sudo nano /etc/nginx/sites-available/calibre-web.com

Và nhập vào nội dung sau

server {
	listen 80;
	server_name calibre-web.my.to;
	return 301 https://$server_name$request_uri;
}
server {
	server_name calibre-web.my.to;
	listen 443 ssl http2;
	access_log  /var/log/nginx/calibre-web.access.log;
	error_log   /var/log/nginx/calibre-web.error.log;
	ssl_certificate /etc/letsencrypt/live/calibre-web.my.to/fullchain.pem;
	ssl_certificate_key /etc/letsencrypt/live/calibre-web.my.to/privkey.pem;
	client_max_body_size 2G;
	location ~* \.(?:ico|css|js|gif|jpe?g|png|ttf|woff|)$ {
		access_log off;
		expires 30d;
		add_header Pragma public;
		add_header Cache-Control "public, mustrevalidate, proxy-revalid>
		proxy_set_header HOST $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-NginX-Proxy true;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_next_upstream error timeout invalid_header http_500 http_>
		proxy_pass http://localhost:8083;
		proxy_redirect off;
		proxy_buffering off;
	}
	location / {
		proxy_set_header HOST $http_host;
		proxy_set_header X-Real-IP $remote_addr;
		proxy_set_header X-NginX-Proxy true;
		proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
		proxy_next_upstream error timeout invalid_header http_500 http_>
		proxy_pass http://localhost:8083;
		proxy_redirect off;
		proxy_buffering off;
	}
}

Ánh xạ, kiểm tra cấu hình không lỗi thì khởi động lại Nginx

sudo ln -s /etc/nginx/sites-available/calibre-web.com /etc/nginx/sites-enabled/calibre-web.com
sudo nginx -t
sudo systemctl restart nginx

Xong, giờ chúng ta truy cập vào Tên miền và đăng nhập với tài khoản mặc định là

  • Tên đăng nhập: admin
  • Mật khảu: admin123

Tiến hành đổi tên đăng nhập và mật khẩu. Lần đầu tiên khởi động sẽ yêu cầu cơ sở dữ liệu của Calibre, nếu chưa có thì bạn có thể tải cơ sở dữ liệu trắng ở liên kết này.
Chúc các bạn thành công.