calibre是一款跨平台的電子書管理程式,支援處理.mobi、.epub、.cbz、.pdf等多種電子書格式,同時可以變成伺服器供其他裝置存取電子書。
calibre功能豐富,適合管理電子書,如文學作品、工具書、論文,漫畫勉強也可以。
我們知道calibre是桌面應用程式,要在有接上螢幕的電腦才可以使用。那麼如果是NAS或Linux伺服器怎麼辦呢?我們可以用Docker技術解決。
LinuxServer.io為我們打包了Docker映像檔,他們製作的calibre映像檔有二個:
一、linuxserver/calibre:用Docker跑headless X11,執行原版calibre主程式,再用網頁VNC存取介面。這個版本圖形效能很差,僅是方便遠端管理書庫,或是啟動內建的Content server。
在iPad瀏覽器的閱讀界面長這樣,就是直接顯示桌面版calibre閱讀器的界面。
二、linuxserver/calibre-web:另一名開發者製作的網頁版介面,具有簡單的中繼資料管理面板。需要calibre書庫才能使用。
calibre-web內建閱讀器,閱讀介面比calibre內建的Content server好,會依照螢幕大小自動調整版面。
在iPad瀏覽器的閱讀界面,EPUB會自動依照螢幕大小重排文字。
PDF則是類似Chrome的PDF檢視器,以PDF.js瀏覽文件內容,不用下載就能看。
以上兩個方案很適合部署到NAS或Linux伺服器,因為沒有螢幕自然就不能使用calibre桌面版了。透過Docker跑calibre,你就能在NAS上進行書籍管理。再搭配calibre-web,方便在手機或平板,用瀏覽器閱讀NAS上的書籍。
這樣做的好處是什麼呢?將所有的書籍集中在一處,其他裝置連APP都不用裝,只要有瀏覽器,就能夠閱讀calibre書庫的書籍。
1. 架設calibre + KasmVNC#
這個步驟是用Docker跑calibre原版桌面版主程式,再用網頁版的KasmVNC存取圖形介面。
僅適合遠端管理書庫,不適合看書。如果純粹要閱讀,請用calibre-web。
Docker版calibre功能跟桌面版的是一樣的,資料庫可以共用,但匯入書籍比較麻煩,放置匯入書籍的目錄必須一併掛載給容器使用。
- 新增存放資料的目錄
mkdir -p ~/calibre
# 如果沒有現有書庫,就新增這個空目錄
mkdir -p ~/calibre/calibre書庫
# 書籍需要匯入到calibre資料庫才能閱讀,新增這個存放要匯入書籍的目錄,方便從其他地方上傳檔案
mkdir -p ~/calibre/import
cd calibre
vim docker-compose.yml
- 新增
docker-compose.yml
如下:
services:
calibre:
image: lscr.io/linuxserver/calibre:latest
container_name: calibre
security_opt:
- seccomp:unconfined
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Taipei #時區
- PASSWORD= #自訂密碼,用於網頁連線驗證用,預設帳號為abc
- CLI_ARGS=
- CUSTOM_PORT=8080
volumes:
- ./config:/config # 將calibre設定檔放在這個目錄下,可使用現有calibre書庫目錄
- ./calibre書庫:/config/calibre書庫 # 將目前的calibre書庫掛載到容器內的/config/calibre書庫,也可以使用現有書庫
- ./import:/config/import # 將尚未匯入到calibre的電子書目錄掛載到容器內部
ports:
- 8080:8080 # calibre網頁對外通訊埠(http),冒號左邊可以修改
- 8181:8181 # calibre網頁對外通訊埠(https)
- 8081:8081 #calibre內建伺服器通訊埠
restart: unless-stopped
- 啟動服務
sudo docker compose up -d
用瀏覽器開啟
http://localhost:8080
或http://伺服器區域IP:8080
,進入calibre頁面,輸入預設帳號abc
,還有上面設定的密碼。設定書庫路徑。注意預設的有空格,應該要選取
calibre書庫
這個目錄。之後的用法跟桌面版calibre一樣,將書籍檔案上傳到剛剛新增的
~/calibre/import/
目錄,再於calibre界面點選左上角的「加入書本」,選取/config/import/
目錄下的書籍匯入。網頁VNC效能不佳,開啟calibre內建閱讀器載入比一般桌面版久,所以此界面僅方便遠端管理書庫,例如整理標籤、抓取詮釋資料、編輯EPUB中繼資料之類的工作。
2. 架設calibre-web#
calibre web提供現代化的網頁版書庫介面,原始碼可於Github取得。
calibre-web書籍管理功能很弱,所以建議先用calibre建立書庫,再用calibre-web閱讀。
- 建立存放資料的目錄
mkdir -p ~/calibre-web
cd ~/calibre-web
vim docker-compose.yml
- 新增
docker-compose.yml
,填入以下內容:
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Asia/Taipei #時區
volumes:
- ./config:/config #calibre-web設定檔存放在目前目錄下
- /home/user/calibre/calibre書庫:/books # 將calibre書庫目錄與calibre-web共享
ports:
- 8083:8083 # calibre-web對外通訊埠,冒號左邊可以修改
restart: unless-stopped
- 啟動服務
sudo docker compose up -d
開啟瀏覽器,從
http://localhost:8083
存取網頁介面,預設帳號admin
,密碼admin123
登入後設定書庫位置
之後就可以開始閱讀了,它支援用calibre的標籤搜尋,可以直接在網頁檢視.mobi、.cbz、.epub、.pdf檔案。
3. 從外部網路存取書庫#
設定內網穿透軟體,這樣其他裝置便能透過http://虛擬區域IP:8083
存取calibre-web的網頁界面,或是透過OPDS協定瀏覽calibre的書庫。