如何自建书库:运行在NAS上的Calibre-Web

个人图书馆是什么?

如果你家里有一台群晖或者可以安装docker的服务器,不妨跟我一起从零开始搭建一个电子书个人图书馆,这个图书馆使用了开源项目calibre-web,这个项目是基于calibre这个单机版图书馆做出来的。

1611119815-main_screen-1024x566-1

calibre-web的功能很强大,主要有以下几点:

  1. 无缝集成calibre单机版图书馆,只要将calibre的数据库文件和相应的图书复制进calibre-web指定目录,calibre的所有书籍就可以通过web端管理阅读、推送了。
  2. 支持上传、下载图书、建立编辑书架功能(上传的图书可从互联网获取完善书籍信息并保存)
  3. 在线阅读pdf、epub等格式,支持的电子书格式众多。
  4. 支持电子书格式在线转换,如pdf—>epub,若出现不能在线阅读,就将格式进行转换。
  5. 支持图书推送到自己的kindle设备
  6. 支持在线注册用户,用户权限管理(如管理员可指定用户是否拥有上传、阅读、下载等权限)

一、如何搭建个人图书馆(calibre-web)?

查看linuxserver/calobre-web配置情况

在群晖docker注册表中搜索calibre,出现很多镜像,星星最多的是linuxserver/calibre-web,为什么这个镜像星星最多,因为这个开发团队一直在维护更新,目前的版本已经非常完善了,所以选择这个镜像没有错,在下载之前我们需要了解这个镜像,点击这个镜像右上角的箭头去docker-hub看这个镜像的使用方法,群晖的镜像启动配置都要去看官方的说明文档而不是仅仅去参照网上教程的参数进行生搬硬套,一旦版本变了官方文档会更新。

来到镜像的说明网址: registry.hub.docker.com 翻到参数一栏,这里我们可以看到需要配置的完整内容

v2-65871b42061ccd0a1bde3da4ba85c6af_720w.webp

-p 代表端口映射是8083,

-e 代表环境变量配置 ,我们需要把时区改回国内:-e TZ= Europe/Lodon → -e TZ=Asia/Shanghai

PUID\PGID 是处理权限的,可以不用设置。

DOCKER_MODS 是电子书转换功能需要配置的,这个可选。

OAUTHLIB_RELAX_TOKEN_SCOPE 是谷歌登录所需的(当然如果要实现这个肯定要去google申请应用),

-v表示目录挂载 需要挂载两个目录分别是 /config /books

我们分析官方文档的主要目的就是了解下载完成后,启动容器前,需要配置哪些内容,这个无论是群晖内的docker还是其他系统的docker,查看官方说明文档是最直接的方式。

  • 群晖系统中,打开Docker套件,在注册表中搜索calibre,并选择linuxserver/calibre-web下载:
v2-e21a9daa1d8e49c6b9f014251a701547_720w.webp
2023年6月份,docker hub在国内访问受阻。我们需要通过一个by pass的方法。
首先,在DSM的设置面板重打开NAS的SSH功能,使用SSH登录你的DSM账户。DSM是基于Linux开发的,基本操作是类似的。
其次,运行 sudo docker pull dockerproxy.com/linuxserver/calibre-web,也就是通过dockerproxy.com提供的代理服务下载docker镜像。
sudo 命令要求你输入密码,是当前账户的密码,而不是root账户的密码。DSM root账户是没有密码的。
下载完成后,可以继续回到DSM web界面进行配置。
  • 下载的同时准备需要挂载的两个目录。在群晖docker目录中自行新建一个文件夹linuxserver-cabibre-books(如果后面运行有问题,请给这个文件夹以Everyone访问文件夹的所有权限),在该文件夹下新建books,config文件夹(名称可自定)。
v2-6dd2ff2260b4571f2a2c4b9840742eed_720w.webp
  • 注册表里下载好镜像后,在映像里找到刚下载好的linuxserver/calibre-web,点击启动
v2-baf8adae10bf2d1e092b813d091d23a4_720w.webp
  • 勾选使用高权限执行容器、自动重新启动
v2-25d33242b333b175dab51906b4579651_720w.webp
  • 在存储空间中添加要挂载的两个文件夹,装载路径是根据官网文档的固定写法,不可变,左侧的文件/文件夹是选择自己在docker下新建的两个文件夹。
v2-fdb26614031d572e0b040b4ef43a14bb_720w.webp
  • 容器端口8083是官方文档要求的不可变,本地端口可以改成群晖里没被占用的,这边填8083。同时在爱快软路由里进行端口映射以便外网访问。
v2-d1b6e3dc43efd717ccfbc70371d0640f_720w.webp
  • 在高级设置找到环境,把官网要求加的环境变量全部加上,因为我们要使用全功能的容器,需要添加以下环境变量
变量名陈 说明
GUID $(id -u) 这个写法是指用户的uid是当前用户,也就是哪个用户启动了这个容器,这个容器就使用哪个用户的权限,这个直接关系到挂载的文件夹是否可以读写,很重要
PUID $(id -g) 这是指定当前用户组的id,保持这个写法即可
OAUTHLIB_RELAX_TOKEN_SCOPE 1 开启谷歌auth
DOCKER_MODS linuxserver/calibre-web:calibre 开启电子书格式转换的能力

补充:官方文档写的GUID\PGID 都填1000 这边不能按照官方的来,因为你不知道你系统的用户id是多少,如果要填写具体数据,就要开启ssh 在群晖中执行 id 用户名 来查看具体的GUID PGID,这里使用$(id -u) $(id -g)是一劳永逸的写法,程序运行到此就是执行命令自行获取相应的id。

  • 检查下各项参数,没问题就可以启动容器。
v2-ed7cdf856f069c0fb6f840b7b8f3da23_720w.webp
  • 重点:手动添加空白的数据库文件

点击这里下载:metadata.db

下载完成后,还需要修改这个文件的所有权。我通过查看config目录下面生成文件的权限得到一个用户ID:“911”(每个版本的DSM可能会不同)。

于是我把books目录和metadata.db的所有权都划归给了911。同样你需要SSH连接DSM,执行下面的命令

cd /volume1/docker/calibre
chown -R 911:911 ./books

补充:为什么要这个数据库文件,因为calibre-web是基于calibre的,它并不负责图书库的创建,所以需要有一个数据仓库,metadata.db就是这个数据仓库,john schember是这个数据仓库中的一本指南书。如果你不使用我的这个空库文件,你也可以去电脑本地安装一个calibre软件,官方下载地址:calibre-ebook.com/downl,安装时会让你指定一个数据库存放目录,安装完成后就会自动生成这个数据库文件和第一本指南书,去这个目录下拿文件即可。复制粘贴到docker/linuxserver-cabibre-books/books

v2-e32f4d65ef5a430a077d2269fb7c5398_720w.webp
  • 登录个人图书馆管理后台,浏览器地址栏输入群晖nas的ip:8083 ,默认登录用户名admin, 密码admin123
v2-eaa57dc3ec8873649cbf80bf7ba69d0b_720w.webp

二、配置个人图书馆

  • 在calibre-web搭建完毕之后,我们要使用它的所有功能,我们要进行详细的配置。

我们的配置要解决以下问题:

1、需要添加数据库路径

2、默认没有开启上传功能,需要打开

3、默认admin没有在线阅读功能,需要打开

4、默认没有电子书格式转换功能,需要配置

5、默认没有开放注册功能,需要打开

6、默认语言是英文,需要切换中文

  • 登录admin账号
v2-eaa57dc3ec8873649cbf80bf7ba69d0b_720w.webp
  • 添加数据库路径为/books (默认写法,不可改变)
v2-f94ea20efc7a97fa66304e64d1b9be3a_720w.webp
  • 点击右上角有人头像的admin,在language中将语言切换成中文并保存。
v2-ac270dd38a4bffcb68ffdeadad9561e8_720w.webp
  • 进入–>管理权限–>编辑基本配置–>启动上传打勾, 启动注册,使用邮箱或用户名打勾

备注:注册功能需要配置发送邮箱!

v2-a7b1670d3d5e4c96cee4e3b07206d21f_720w.webp
  • 进入–>管理用户–>勾选允许查看书籍
v2-e673cbef8c5f09a28e6c01cc58bd4c08_720w.webp
  • 进入–>基本配置–>扩展程序配置
v2-a420ba9aa4cc1c6ac67aeb0bb56a1ed1_720w.webp

calibre电子书转换器路径设置为/usr/bin/ebook-convert

kepubify电子书转换器路径设置为/usr/bin/kepubify

这两个其实就是calibre-web的两个插件,一个功能强大到什么格式都能互转,另一个是将epub转为kepub,kepub应该是带有认证信息的电子书格式,如果要深入了解电子书格式可以网上搜索一下。

这个配置是官方给的固定写法,所以不做解释,有兴趣的请翻阅官方文档

registry.hub.docker.com

  • 配置完成后,左上角出现上传书籍图标,我们测试上传书籍
v2-8ddeb91bb484c5e2a7bfe727eb00b788_720w.webp
  • 上传完成后,点击书籍后出现的界面中可以下载、在线阅读,有些格式不能在线阅读,就转换格式
v2-c6c5066b07ea8c08f3e5be45d4663a76_720w.webp
  • 点击上图中编辑元数据,在出现的页面左侧有转换书籍格式功能。
v2-c117ded3b7346377218f9ecd478300fc_720w.webp
  • 编辑元数据 界面的最下方有 获取元数据 按钮,可以刮削书籍的更多信息。
v2-68896619e7c81809fc689cefefd08a25_720w.webp

发表评论