群晖NAS搭建外网可访问的电子图书馆Calibre-Web

这篇文章是 黑群晖 系列 21 篇文章中的第 19 篇

一、在群晖 docker 上安装 calibre-web

1. 下载相关的镜像文件

打开 Docker 后点击左侧注册表,在上方搜索栏搜索 calibre

然后我们选择使用 technosoft2000/calibre-web 的镜像,因为这个版本的镜像的网页会更加漂亮美观。

双击 technosoft2000/calibre-web 然后选择下载最新的版本即可。

2. 启动镜像

在 Docker 中找到我们刚刚下载好的镜像,点击左上角启动

3. 获取群晖 NAS 的 GID 和 UID,以便于后续配置文件

进入群晖的 控制面板 ,然后选择 终端机和SNAP

在这里,我们启动群晖的 ssh 功能后,然后保存

Windows 用户,可以在电脑中搜索 PowerShell 这个系统自带软件。基本上 Windows 10 以上系统都是默认安装的。

Mac OS 和 Linux 用户直接用系统自带的 Terminal 或者叫 终端 的系统自带软件。

以下的操作命令都是相同的,这里我使用 Mac OS 作为演示。

利用命令 ssh <你的群晖用户名>@<你进入群晖的内网ip地址>

在这里输入你的群晖的密码

然后输入以下命令:cat /etc/passwd | grep admin 并敲击回车

这里,显示了你的群晖 UID 和 GID

例如,前面的 1024 就是我的 UID ,100 就是我的 GID

  • 一定要记录下这个信息,稍后我们将会用到,否则会出现权限问题,导致后续 calibre 无法正常使用

4. 为 calibre 创建文件夹

点击共享文件夹后,然后新增一个共享文件夹:Docker 。只需要修改文件夹名称,其余设置均不用修改,保持默认选项即可。

我们之后把 Docker 相关的文件都可以放进去。

5. 配置镜像参数

将网络选择成与 Docker Host 相同的网络,然后点击下一步

将常规设置中的一些内容,做一些修改后进入 高级设置

  • 切记勿直接进入下一步

这个时候我们需要使用到刚刚记录到的 UIDGID

点击左上角的新增,然后会在列表最下面新增一个空白的行,这个时候输入我们刚刚查到的 UIDGID

  • 这里注意,点击了以后会出现在列表最下面,所以找不到的话往下拉一下就看到了。群晖程序员可以改进一下 UI 了 🤣
  • 注意这里的名字是 PGIDPUID

最后确认好了后点击保存就完成了。

现在会自动返回刚刚的界面,然后点击下一步

现在,我们来选择 calibre 文件的存储路径,这里我们选择使用官方推荐的路径。

点击 添加文件夹

然后在 calibre 文件夹下创建两个文件夹:books 和 config 后,选择这两个文件夹

在装载路径中,分别写下图所示的路径,千万要对应好!!!

/books

/calibre-web/config

6. 修改 calibre 文件夹权限

进入群晖自带的软件 File Station,然后进入属性修改权限。

点击 权限 ,然后选择 新增

在用户或组里选择 Everyone

然后勾选 读取写入 的小勾勾,它下面所有的权限都会被勾上,然后点击完成。

勾选应用到这个文件夹、子文件夹及文件,然后点击保存

二、进入 callibre-web

1. 添加书库的原始数据库

因为 calibre-web 镜像是不带数据库的,这个时候我们需要用 calibre 本地版的数据库来引导。下面我提供了原始的 calibre 的原始数据库,方便大家下载使用。

如果想图省事儿可以直接将下面这个文件,拖拽到刚刚创建的 docker/calibre/books 中即可
metadata.db

下面建议大家使用的另一种方式就是下载一个 calibre 桌面端,这对于我们之后管理书库会方便很多。网页版的 calibre-web 更适合看书和下载,但是桌面端对于批量导入书籍都非常方便。

下载链接:https://calibre-ebook.com

根据自己操作系统选择下载即可,在安装过程中保持默认安装即可。

下载好 calibre 客户端后,将我们的数据库和 NAS 数据库保持同步。

下载完成后,calibre 会让你选择书库的位置,这个时候我们将位置选择到群晖的 docker/calibre/books 中即可。(记得要提前映射 NAS 到你的电脑,具体步骤可以参考百度)

2. 进入 calibre-web 网页

使用 <群晖ip地址>:8083 进入你的 calibre- 网页端。第一次启动会让你选择数据库的路径,直接输入 /books 即可。

  • 如果没有出现以上内容,稍后需要进行设置。(稍后会进行提示)

这个时候会让你输入你的 用户名密码 ,输入默认的用户名和密码即可。(稍后最好进行修改)

默认的用户名:admin

默认的密码:admin123

3. 修改 calibre-web 的语言

这个时候你看的用户界面应该是英文版的,我们先去把语言修改成简体中文。

点击 admin,进入设置页面

在 Language 中选择 简体中文,最后点击在页面最下方的 save 保存

现在页面所有内容都是中文了,看起来会更加直观,现在我们去修改一下新用户的用户语言。

点击右上角的 管理权限

选择 编辑界面配置

将新用户 默认语言 修改为简体中文即可

calibre-web 支持多个账号,你的家人朋友也可以浏览你 NAS 上的书库,并使用不同的账号。在他们注册了账号后,默认语言将是简体中文。

4. 配置数据库路径(按需)

刚刚登陆网页时,如果没有出现要你选择数据库,一定要在这里选择配置。

选择数据库的路径,直接输入 /books 即可。

5. 开启上传权限

calibre-web 默认是不开启网页端上传权限的,只能用 calibre 桌面端进行管理书库。但是我们也希望通过网页端也能实现书本的上传,这个时候开启权限即可。

功能配置 中勾选 启用上传 即可开启网页端上传功能。

6. 启动匿名浏览

calibre-web 默认是不允许匿名浏览的,也就是说没有登录的用户是看不到页面的,这对于我这个希望展示的人来说多少有点不方便。我希望大家谁都能看我书库里的书列表,但是不允许下载和阅读。这个时候打开匿名浏览即可。

进入 编辑基本配置

点击 允许匿名浏览 即可开启。

之后你可以在用户组里设置匿名用户也就是 guest 的权限。

现在你已经完成了在局域网内访问和管理 calibre-web 的功能。

如果你不想折腾外网访问,到这里你就可以开心的去上传书本了~

我建议大家使用 calibre桌面端 管理书本,个人感觉会更加方便一点。因为我们设置了同步,所以在桌面端上传的书本会时刻与网页保持同步。

三、通过外网访问

DDNS 就是配置域名解析方式,默认群晖提供一些可选的域名给大家使用,有不少提供商,而且群晖提供自动申请 https 证书。

注意:要使用 DDNS 方式,必须有公网 IP(拨号上网获取到公网 IP,或者运营商支持 IPV6 公网 IP),还要在路由器中配置端口映射转发,否则访问不了

部分宽带运营商默认获取到的是大内网 IP,并不是公网 IP,查看路由器后台获取到的 IP 地址,然后和群晖后台获取的 IP 地址对比下,如果不一样就不是公网 IP,可以联系运营商开通公网 IP,实在不行就只能换运营商了。

1. 利用群晖二级域名配置 DDNS

新增一个 DDNS 配置:

主机名称起一个名字,最后全称就是访问域名了,如主机名称为 test,最后访问地址就是:test.myds.me,配置的时候群晖会自动申请 https 证书,有 https 证书可以通过 https 访问,可以提高安全性。

注意:这里的 IP 地址和路由器获取的 IP 地址一定是一样才能访问。

如果有自己的域名,可以直接在域名提供商的网站上,将域名映射到自己的公网 ip 上。网上相关教程较多,这里就不再赘述了。

2. 配置端口映射

这里有个点需要注意一下,当你的群晖挂载到二级路由器(也就是说你的网络运营商提供了一个路由器,然后你用自己的路由器连接到运营商路由器,群晖挂载到自己的路由器)。

这种情况下,一定要将运营商的路由器设置成 passthrough/穿透模式 才能够正常使用外网访问,如果群晖挂载到网络运营商服务器则没有影响。

配置好 DDNS 之后,并不能直接访问,需要路由器中配置端口转发,把公网 IP 的请求转发到群晖 NAS 端才可以。

根据你的路由器说明书,添加以下端口。协议如有最好设置成 BOTH 或者是 TCP和UDP

内部 ip 地址,就是你群晖 NAS 的内网 ip 地址

配置好之后就就可以测试访问了。

3. 用 DDNS 方式登录

在浏览器中输入完整域名地址,如:http://test.myds.me:5000,访问之后就看到自己的群晖 NAS 网页界面,注意要加上端口,否则可能访问失败。

4. ssl 证书

如果是自己的域名,在每次访问时都会弹出安全提示,这是因为 ssl 证书的问题。在群晖安全性的证书里,添加自己的证书即可(记得一定要添加泛域名证书 *.域名)

如果使用群晖的二级域名,在之前创建通过以下方式已经自动创建了 ssl 证书,应该不会出现 ssl 证书的问题。

建议大家开启 https 的重定向,进入 登录门户→打开重定向 https 即可

现在我们可以直接通过域名 + 端口号来访问我们的 calibre-web

5. 摆脱使用端口号访问

如果不想访问时附带端口号,有两种选择:

  • 用自己的域名创建二级域名,如:calibre.abc.com
  • 使用刚刚创建的群晖二级域名(此时这个域名将无法访问你的群晖 nas,会直接访问 calibre-web 网站)

打开反向代理服务器的设置,点击 新增

按照以下内容,设置反向代理即可。

现在,你就可以通过你的域名来访问你的 calibre-web 服务器了。

快去跟你的小伙伴们分享你的线上图书馆吧。

系列目录<< 群晖通过 Docker 部署BitWardenVMWare 搭建黑群晖DSM920+ >>