Hướng dẫn  Cài đặt Calibre Server đọc sách bằng trình duyệt trên Oracle Cloud.

statistics

k0Qqw6p.png

Giới thiệu​

Calibre như một thư viện thu nhỏ vậy, nó quản lý tất cả các đầu sách của bạn một cách ngăn nắp và gọn gàng. Ngoài ra, nó còn có rất nhiều tính năng hay ho khác như chuyển định dạng ebook từ epub sang pdf chẳng hạn. Tuy nhiên, Calibre sử dụng trên máy tính nói chung trừ thiết bị di động ra thì rất hoàn hảo. Chỉ là việc sử dụng trên điện thoại thú thật mình chẳng biết dùng thế nào.

Tuy nhiên, mình có lượn vài vòng và gặp được một bài hướng dẫn tạo Calibre Server có thể đọc trực tiếp trên trình duyệt ở bất kỳ đâu có internet và bất kỳ thiết bị nào kể cả điện thoại. Ngoài ra, khi bạn đang đọc dang dở mà mất internet thì bạn hoàn toàn có thể tiếp tục đọc được vì nó sẽ lưu trên bộ nhớ cache. Khi nào bạn xoá nó trên Calibre thì cuốn sách ấy mới biến mất khỏi bộ nhớ cache điện thoại.

Hướng dẫn​

Cấu hình​

  • Oracle Cloud.
  • Ubuntu 22.04.
  • VM.Standard.E2.1.Micro.

Bước 1: Cài đặt các gói cần thiết​

Bash:
sudo apt-get install libegl1 libopengl0 libfontconfig libxkbcommon0 libgl1-mesa-glx libnss3 libxcomposite1 libxdamage1 libxrandr2 libxtst6 libxkbfile1

Bước 2: Tải và cài đặt Calibre​

Bash:
wget -nv -O- https://download.calibre-ebook.com/linux-installer.sh | sudo sh /dev/stdin install_dir=/opt

Bước 3: Tạo thư mục lưu trữ sách​

Bạn có thể hiểu đây là cái kho chứa sách tương tự như bản Desktop.

Bash:
mkdir /home/ubuntu/calibre-library

Bước 4: Tải thử một cuốn sách và thêm cuốn sách đó vào kho sách​

Bash:
wget http://www.gutenberg.org/ebooks/1661.kindle.noimages -O adventuresofsherlockholmes.mobi

Bash:
calibredb add adventuresofsherlockholmes.mobi --with-library /home/ubuntu/calibre-library

Bước 5: Mở port​

Mở port 8080. Ở đây, mình hướng dẫn mở tất cả các port INPUT nhé. Sau khi chạy lệnh dưới. Bạn nhớ mở port tại Oracle nữa nhé.

Bash:
sudo iptables -D INPUT 6

Bước 6: Kiểm tra​

Chạy thử xem Calibre có chạy được không. Bạn truy cập vào địa chỉ có dạng http://IP:8080.

Bash:
calibre-server /home/ubuntu/calibre-library/

Bước 7: Tạo script systemd để tự khởi động Calibre​

Bash:
sudo nano /etc/systemd/system/calibre-server.service

Sau đó, dán các đoạn này vào.
Bash:
[Unit]
Description=calibre Content server
After=network.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
ExecStart=/opt/calibre/calibre-server "/home/ubuntu/calibre-library" --port 8080

[Install]
WantedBy=multi-user.target

Bước 8: Chạy Calibre​

Bash:
sudo systemctl enable calibre-server --now

Bước 9: Tạo tài khoản​

Tới đây, Calibre của bạn đã có thể chạy được rồi. Nhưng nếu bạn muốn tạo tài khoản để truy cập đến kho sách của bạn, bạn có thể thêm dòng lệnh dưới đây:

Bash:
calibre-server --manage-users

Chọn số 1 → đặt username → đặt mật khẩu → xác nhận mật khẩu lần nữa.

Sau đó, bạn sửa lại file tự động khởi động Calibre ở bước 7 và thay lại thành:
Bash:
[Unit]
Description=calibre Content server
After=network.target

[Service]
Type=simple
User=ubuntu
Group=ubuntu
#ExecStart=/opt/calibre/calibre-server "/home/ubuntu/calibre-library" --port 8080
ExecStart=/opt/calibre/calibre-server "/home/ubuntu/calibre-library" \
--port 8080 --enable-local-write \
--userdb "/home/ubuntu/.config/calibre/server-users.sqlite" \
--enable-auth \
--ban-after 5 --ban-for 360

[Install]
WantedBy=multi-user.target

Cuối cùng bạn chạy lại Calibre để các thay đổi được áp dụng.

Bash:
sudo systemctl daemon-reload

Bash:
sudo systemctl restart calibre-server

Bước 10: Trỏ domain cho website​

Cài đặt apache và certbot.

Bash:
sudo apt-get install apache2 python3-certbot-apache

Tạo tệp tin cấu hình mới của Calibre.

Bash:
sudo nano /etc/apache2/sites-available/calibre.conf

Sau đó, chèn đoạn sau vào, bạn thay your_FQDN thành domain name của bạn.

Bash:
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so

<VirtualHost *:80>
ServerName your_FQDN
AllowEncodedSlashes On
ProxyPreserveHost On
ProxyPass "/" "http://localhost:8080/"
</VirtualHost>

Tiếp theo, chạy lần lượt 3 lệnh dưới đây:
Bash:
sudo a2dissite 000-default
sudo a2enmod proxy_http
sudo a2ensite calibre
Khởi động lại apache:
Bash:
sudo systemctl restart apache2
Tới đây, bạn cần mở port 80 và 443, bạn nào mở tất cả các port như hướng dẫn trên thì bạn chỉ cần mở tiếp port ở trên Oracle Cloud là được.

Bước 11: Thêm SSL cho website​

Bạn chạy lệnh dưới
Bash:
sudo certbot --apache

Và nhập email của bạn vào và bạn chọn lần lượt là Y → N → nhấn ENTER.

Bước 12: Tự động gia hạn SSL​

Bạn kiểm tra xem việc gia hạn có lỗi gì không, bạn chạy lệnh bên dưới để test. Nếu xuất ra thành công thì bạn đến bước tiếp theo, có lỗi thì bạn cần kiểm tra lại cách cài đặt nhé.

Bash:
sudo certbot renew --dry-run

Tiếp theo, bạn mở crontab lên.

Bash:
sudo crontab -e

Thêm dòng bên dưới vào.

Bash:
0 23,17 * * * sudo certbot renew >> /var/log/letencrypt/autorenew.log

Bước 13: Backup kho sách​

Nhìn chung, Oracle Cloud cho khoảng 50GB dung lượng lưu trữ. Nhưng cái thằng Dropbox của mình thì chỉ có tầm 18GB thôi. Tuy nhiên, mình nghĩ mình không đọc nhiều đến vậy, nên cũng quan trọng lắm. Còn bạn nào hướng sưu tập sách thì nên tìm kiếm dịch vụ khác để backup kho sách nhé.

Và đoạn backup này khá lằng nhằng, bạn đọc vui lòng nạp cà phê để tỉnh táo, ngồi thiền 30 phút để bình tĩnh trước khi làm.

😏 Tuyên bố miễn trừ trách nhiệm: Bạn đọc có đập máy thì điều này cũng không liên quan đến tôi. Xin cảm ơn!
Chạy một lệnh duy nhất để cài đặt.

Bash:
sudo -v ; curl https://rclone.org/install.sh | sudo bash

Nếu nó hỏi mệt khẩu thì bấm Ctrl + C và phó mặc cho trời. Chạy được thì chạy, không chạy được thì ... do bạn nghiệp🐧. Trong trường hợp này, mình gợi ý bạn nên làm 1 két bia cho ấm người rồi vô đập máy vẫn chưa muộn.

Nếu qua được thử thách đầu tiên thì bắt đầu độ khó tăng lên. Bạn hãy chạy lệnh rclone config. Sau đó, bạn chọn n để tạo "1 cái backup mới". Tiếp tục, đặt tên cho nó ví dụ như calibreBackup. Nó sẽ ra một list các nhà cung cấp dịch vụ lưu trữ như Drive, Onedrive, Dropbox,... Mình chọn Dropbox. Kế tiêp chọn con số ứng với dịch vụ ấy. Nhìn chung, từng phiên bản rclone mà con số nó khác nhau nên cũng khó hướng dẫn, như hình thì mình sẽ chọn 13.

1660545924555.png

Nó sẽ hỏi client_id và client_secret thì cứ bấm Enter để qua. Rồi nó bắt bạn chọn y/n thì bạn cứ chọn n.

Tiếp theo, bạn cần cài đặt rclone cho máy tính có trình duyệt. Bạn có thể tải rclone và cài đặt theo hướng dẫn của nó ở dưới.

Rclone downloads

Nếu bạn sử dụng Windows, bạn hãy tải bản 64 bit hay 32 bit tuỳ hệ điều hành mà bạn đang sử dụng. Sau đó, giải nén ra.

Tiếp theo, bạn mở cmd tại thư mục mà bạn giải nén. Và bạn chạy lệnh:

Bash:
rclone authorize "dropbox"

Sau đó, bạn đăng nhập và cấp quyền cho nó. Cuối cùng, vị huynh đài hãy cố gắng đọc cái đoạn mà nó trả về nhé. Mình sẽ lấy cái đoạn ở giữa nó bảo paste:

Bash:
{"access_token":"s......bí mật nha.......5T03:02:49.0331199+07:00"}
Sau đó, quay về VPS, bạn hãy dán đoạn trên vào. Sau đó bấm Enter và bấm y để xác nhận và q để thoát. Giống thế này:
Bash:
Keep this "calibreBackup" remote?
y) Yes this is OK (default)
e) Edit this remote
d) Delete this remote
y/e/d> y

Current remotes:

Name                 Type
====                 ====
calibreBackup        dropbox

e) Edit existing remote
n) New remote
d) Delete remote
r) Rename remote
c) Copy remote
s) Set configuration password
q) Quit config
e/n/d/r/c/s/q> q
ubuntu@calibrebook:~$
Bạn cài đặt zip để nén thư mục calibre-library

Bash:
sudo apt install zip -y

Bạn tạo tệp autorun.sh và dán đoạn bên dưới vào:
Bash:
#!/bin/bash
cwd=$(pwd)
SERVER_NAME=Calibre
REMOTE_NAME=calibreBackup
DATE=`date +%Y-%m-%d`
TIMESTAMP=$(date +%F)
BACKUP_DIR=/backup

exec >/home/ubuntu$BACKUP_DIR/logs/${DATE}.log
exec 2>&1

echo "Starting compress Calibre Library";
sudo zip -r -y -q /home/ubuntu$BACKUP_DIR/$TIMESTAMP.zip /home/ubuntu/calibre-library/
echo "Finished";
echo '';

echo "Starting Uploading";
rclone copy /home/ubuntu$BACKUP_DIR/$TIMESTAMP.zip "$REMOTE_NAME:/$SERVER_NAME/"
rclone -q delete --min-age 2d "$REMOTE_NAME:/$SERVER_NAME"
find /home/ubuntu${BACKUP_DIR} -mindepth 1 -mtime +3 -delete
echo "Finished";
echo '';
  • SERVER_NAME: là thư mục mà bạn upload đến trong dropbox. Bạn muốn backup vào thư mục nào ở Dropbox thì ghi tên thư mục đó.
  • REMOTE_NAME: là tên remote mà mình đã cài đặt ở trên kia.
Bạn cấp quyền chạy cho nó:

Bash:
chmod +x ./autorun.sh

Bạn hãy chạy thử xem có lỗi gì xuất ra màn hình không nha, không có gì xuất ta màn hình tức là thành công.

Tiếp theo, bạn cài đặt cho nó tự động chạy mỗi ngày một lần:

Bash:
crontab -e

Sau đó thêm dòng này vào cuối file:

Bash:
0 20 * * * /home/ubuntu/autorun.sh > /dev/null 2>&1

tức là lúc tầm 3, 4 giờ sáng sẽ backup 1 lần.

Mong là bạn chưa đập máy. Chúc may mắn 🤣🤣🤣.

Tham khảo​

 
Sửa lần cuối:
Trả lời

statistics

Moderator
Thành viên BQT
Sao không múc thẳng sách lên google play book cho nhanh bác
Google book hơi kén định dạng file. Với lại, tool này có nhiều chức năng hơn ví dụ như convert định dạng ebook và chỉnh màu nền cỡ chữ, line, căn lề tuỳ thích phù hợp cá nhân hơn google book - chỉ được chọn theo cái có sẵn ấy bác. Và cái đặc biệt nhất là bác có thể đọc ở máy tính ở cơ quan hay trường mà không cần login tài khoản nhạy cảm như google.
 

muwa04

Gà con
Nghĩa là mình vẫn đọc bằng máy tính windows đúng ko pro? Đăng ký Oracle Cloud rồi mà giờ mới nghịch xem nó làm được những gì
 

statistics

Moderator
Thành viên BQT
Nghĩa là mình vẫn đọc bằng máy tính windows đúng ko pro? Đăng ký Oracle Cloud rồi mà giờ mới nghịch xem nó làm được những gì
đúng rồi bác. Đọc trên trình duyệt: Windows, Android, IOS, MAC,...
 

gift4you

Rìu Bạc
Để làm thử theo bạn. Trước giờ, mình vẫn tải ebook lên vps rồi dùng app trên điện thoại kết nối ftp đến vps. App có chức năng đọc ebook luôn nên khá tiện. Chỉ là nếu bookmark bằng app trên điện thoại thì mở app trên tablet/ iPad... lại không đồng bộ cái bookmark đó mà thôi {adore}
 

statistics

Moderator
Thành viên BQT
Để làm thử theo bạn. Trước giờ, mình vẫn tải ebook lên vps rồi dùng app trên điện thoại kết nối ftp đến vps. App có chức năng đọc ebook luôn nên khá tiện. Chỉ là nếu bookmark bằng app trên điện thoại thì mở app trên tablet/ iPad... lại không đồng bộ cái bookmark đó mà thôi {adore}
Nếu bác đọc xong, muốn lưu lại ngay lặp tức như: bookmark, vị trí bác đọc thì bác có thể bấm nút sync. Nhưng mình sử dụng thấy nó lưu ngay lặp tức và thiết bị khác có ngay, cũng không nhất thiết phải bấm nút sync. {mage}
 
Sửa lần cuối:

muwa04

Gà con
Nếu bác đọc xong, muốn lưu lại ngay lặp tức như: bookmark, vị trí bác đọc thì bác có thể bấm nút sync. Nhưng mình sử dụng thấy nó lưu ngay lặp tức và thiết bị khác có ngay, cũng không nhất thiết phải bấm nút sync. {mage}
bác có hướng dẫn gì ngon liên quan đến Oracle VPS thì share giúp e với nhé. Thấy mấy cái này hay ghê
 

gift4you

Rìu Bạc
bác có hướng dẫn gì ngon liên quan đến Oracle VPS thì share giúp e với nhé. Thấy mấy cái này hay ghê
Cài File Server, VPN (OpenVPN, WireGuard...), DNS... Cứ xem VPS như 01 máy tính thật thì bạn muốn cài gì thì cài, muốn "vọc" sao thì "vọc". Nếu có lỗi thì tạo lại VPS mới :)