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
Bash:
sudo systemctl restart apache2
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.
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"}
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:~$
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.
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: