群晖NAS搭建外网可访问的电子图书馆Calibre-Web
群晖NAS搭建外网可访问的电子图书馆Calibre-Web
一、在群晖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 相同的网络,然后点击下一步

将常规设置中的一些内容,做一些修改后进入高级设置
- 切记勿直接进入下一步

这个时候我们需要使用到刚刚记录到的UID
和GID
点击左上角的新增,然后会在列表最下面新增一个空白的行,这个时候输入我们刚刚查到的UID
和GID
。
- 这里注意,点击了以后会出现在列表最下面,所以找不到的话往下拉一下就看到了。群晖程序员可以改进一下UI了 🤣
- 注意这里的名字是
PGID
和PUID
最后确认好了后点击保存就完成了。

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

现在,我们来选择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服务器了。
快去跟你的小伙伴们分享你的线上图书馆吧。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· 实操Deepseek接入个人知识库
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· 【.NET】调用本地 Deepseek 模型
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
2019-11-26 umi+dva+antd新建项目(亲测可用)
2019-11-26 dva+umi+antd项目从搭建到使用(没有剖验证,不知道在说i什么)
2018-11-26 Http 请求头中 X-Requested-With 的含义