Made with ❤️ && for Freedom
自二进制计算机发明以来,人们一直在做一件事:用0和1表示所有信息。
从最早发明的ASCII用以表示字母,到如今人人都无法离开的视频传输,“数字化”和“云服务”已经应用到我们能接触到的各种信息形式中。
直到最近才发现我的知识获取途径已经全部数字化:上课课本基本不用,PPT和电子讲义已经足够;有些科目掌握的不好,也不需要什么辅导书、咨询老师,网上视频再听一听就行;娱乐活动也很少见到纸牌、实物游戏,基本上都是游戏数据;纸质书?好像好久没拿起来认真读过,倒是电子书收集了一大堆。
要不,搞一个统一的电子书阅读平台吧,说不定有空了还能打开看一看呢。
我是有过电子书平台使用经验的用户,几年之前买了 Kindle PaperWhite,用 Amazon 的电子书库统一管理。使用体验中规中矩,导入的电子书格式有限制,管理书籍太麻烦,阅读平台单一,无法完全控制电子书文件,kindle 中国服务关闭则是让我放弃 Amazon 电子书库的最后一根稻草(其实也不得不放弃,因为电子书全被删了)
我的需求很简单,网页阅读,服务器本地存储,支持常见格式电子书。这就是我们今天的主角—— Calibre.
基本介绍
calibre 应该是 kovidgoya 写的一个跨平台 GUI 图书阅读器,但是功能非常强大,用来管理电子书都绰绰有余。也因为功能非常强大,依赖太多,反正我是不想自己构建。
今天我们使用 Docker 直接跑 calibre,据说 Docker 版的 calibre 也有几个版本,我也不想一个一个试,直接用了 linuxserver 的版本。要问为什么?Google 搜 calibre docker 第一个结果就是。
打开一看,怎么还有两个镜像?calibre 和 calibre-web 据我的使用体验其实都一样,前者是直接用 calibre 做镜像,网页访问界面是 VNC 直接调用 calibre 的 GUI。而后者更像是重写的一个前端+后端,提供一个更现代的 Web 访问界面和用户管理,但是书籍管理相对于原版差一些。
两个都装想用哪个用哪个。
Calibre Docker 容器安装
在一个空文件夹里新建 compose.xml
文件
mkdir calibre-docker
cd calibre-docker
vim compose.xml
按照官方给出的配置文件,写入以下内容
---
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
- DOCKER_MODS=linuxserver/mods:universal-calibre #optional
- OAUTHLIB_RELAX_TOKEN_SCOPE=1 #optional
volumes:
- /path/to/data:/config
- /path/to/calibre/library:/books
ports:
- 8083:8083
restart: unless-stopped
calibre:
image: lscr.io/linuxserver/calibre:latest
container_name: calibre
security_opt:
- seccomp:unconfined #optional
environment:
- PUID=1000
- PGID=1000
- TZ=Etc/UTC
volumes:
- /path/to/data:/config
ports:
- 8080:8080
- 8181:8181
- 8081:8081
restart: unless-stopped
/path/to/data 是挂载到 Docker 中的文件夹,/path/to/calibre/library 是导入书时用的文件夹
里面的 PUID 和 GUID 是运行用户,用户要对以上文件夹可读可写,可用以下指令查看用户的 ID
id your_user
配置好之后, Docker 启动!
sudo docker-compose up -d
使用方法
calibre 面板:http://<your_ip>:8080
calibre-web 面板:http://<your_ip>:8083
初始化
初始账户 admin
初始密码 admin123
建议用 calibre 创建 Library,calibre-web 填创建好的目录,就可以实现两个面板同步操作了!
上传书籍
calibre 中可以将 Docker 挂载目录中的书籍添加到数据库中
calibre-web 设置后也可以直接上传文件
设置完成之后,给予对应用户权限之后可以在右上角看到上传按钮
阅读
两个容器的server网页服务都可以直接阅读,但是都没有记忆功能,只是简单的打开数据库中的书。
也可以使用第三方阅读器阅读,那么 calibre 就完全变成了一个书的储存桶,支持HTML 或者 OPDS 的第三方阅读器都可以从 calibre-web 下载书籍和数据,还是不能同步所有阅读器的阅读进度。
OPDS 地址:http://<server_ip>:8083/opds/
写在最后
折腾上一个晚上,Calibre 的架构和功能基本上已经了解,它和 Emby 类似,是一种“媒体管理库”。那么接下来就有两个问题:媒体从哪里来?谁来使用这些媒体?
其实无论是书架、纸张还是 Calibre、电子书,它们只是文字和思想的载体,而看什么书,看不看书,什么时候看书,从来都不为这些载体所能决定。