书斋Tech

Calibre 私人数字图书馆能让我开始阅读吗?

by illlights, 2024-02-17


自二进制计算机发明以来,人们一直在做一件事:用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初始化

calibre-web设置

上传书籍

calibre 中可以将 Docker 挂载目录中的书籍添加到数据库中

calibre 添加电子书

calibre-web 设置后也可以直接上传文件

calibre-web设置

calibre-web设置

设置完成之后,给予对应用户权限之后可以在右上角看到上传按钮

calibre-web上传书籍

阅读

两个容器的server网页服务都可以直接阅读,但是都没有记忆功能,只是简单的打开数据库中的书。

calibre-web阅读界面

也可以使用第三方阅读器阅读,那么 calibre 就完全变成了一个书的储存桶,支持HTML 或者 OPDS 的第三方阅读器都可以从 calibre-web 下载书籍和数据,还是不能同步所有阅读器的阅读进度。

OPDS 地址:http://<server_ip>:8083/opds/

写在最后

折腾上一个晚上,Calibre 的架构和功能基本上已经了解,它和 Emby 类似,是一种“媒体管理库”。那么接下来就有两个问题:媒体从哪里来?谁来使用这些媒体?

其实无论是书架、纸张还是 Calibre、电子书,它们只是文字和思想的载体,而看什么书,看不看书,什么时候看书,从来都不为这些载体所能决定。

作者: illlights

2024 © typecho & elise