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
- Ubuntu Server.
- Nginx để làm Reverse Proxy.
- Tên miền với chứng chỉ SSL đã được lấy miễn phí từ Let's Encrypt.
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.