一、安装docker
安装docker,这部分,因为我在很久之前就已经完成了,那时候并没有做笔记的习惯,所以大家只能自行百度了
二、创建docker组、docker用户、 docker文件夹(解决大多数权限问题)
2.1 创建docker组
打开控制面板,选择用户与群组,点击用户群组,点击新增
2.2 创建docker用户
创建一个名为docker的用户,加入docker用户组
2.3 创建docker文件夹
打开控制面板、共享文件夹,点击新增输入docker
创建完成后,给docker群组、docker用户,添加使用权限(可读写等,完全控制)
2.4 获取docker用户id与组id
2.4.1 打开ssh服务
打开控制面板、终端机和snmp,勾选启动ssh功能
2.4.2 连接ssh nas
利用ssh工具和拥有sudo权限的用户连接nas服务器
~$ sudo su
Password: 输入密码(不显示)
ash-4.4# id docker
记住这几个数字
比如我的是
uid=1035(docker) gid=100(users) groups=100(users),65538(docker)
三、technosoft2000/calibre-web部署
Docker hub 网址
technosoft2000/calibre-web - Docker Image | Docker Hub
3.1 下载technosoft2000/calibre-web的映像
点击docker、注册表,右侧搜索栏搜索calibre-web,找到对应项,双击下载,版本选择最新或者手动选择最下面的1.6.1
在下载过程中,我们进行3.2、3.3,并在下载完成后进行3.4
3.2 在docker文件夹中,创建文件夹calibre-web
3.2.1创建calibre-web文件夹
点击file station、选中docker,点击新增,新建文件夹,输入calibre-web,点击确定
3.2.2 修改calibre-web文件夹归属者(如果不是用docker用户登录并创建的话,注意修改)
为了避免可能出现的问题,建议修改文件夹拥有者
选中该文件夹后,单击右键,选择属性,在弹出窗口中,拥有者部分,选择docker作为拥有者
3.3 创建books目录
3.3.1 创建一级目录(共享文件夹)并给docker用户、用户组添加使用权限
不作赘述,目录名称自定义,但是建议无中文,避免不必要麻烦
我的共享文件夹命名为MyBookLib,为了保证权限控制,避免误操作等情况,我只对超级管理员用户和docker用户设置了可读写权限,没有给everyone设置所有权限(建议大家对nas管理的时候要做到权限控制,权限不可以乱给),其他部分用户我也设置了只读权限,对于不必要用户我设置了无权限
3.3.2 创建二级目录(必要操作)
目录名称自定义,建议无中文,避免不必要的麻烦
注意,必须要操作,不然有大坑,这里是为了避坑准备的
- 必须要修改拥有者为docker用户,必须是docker用户,不要改为用户组!
- 必须创建这个二级目录留着后面用,记住文件目录路径
我把该层目录命名为books,用来装载calibre的books,当然也可以为了阅读清晰易懂的观念,把该目录命名为calibreBooks
待这部分操作完成后,等待下载完成,在进行3.4
3.4 创建容器
点击docker、映像下找到下载的technosoft2000/calibre-web的映像,再点击启动
3.4.1网络模式选择
弹出窗口中,使用bridge,点击下一步
3.4.2 常规设置
勾选 启用自动重启启动 选项,然后点击高级设置
3.4.3 高级设置
在弹出页面中,滚动鼠标找到
SET_CONTAINER_TIMEZONE, value 值更改为true
CONTAINER_TIMEZONE, value 值更改为 Asia/Shanghai
拉到最下面,点击新增(也可以点击新增,拉到最下面,反正一个意思)
输入以下键值对
PGID, value为 65538(上面的docker用户组 groups)
PUID, value为 1035(上面的docker用户uid)
点击保存,并点击下一步
3.4.4 端口设置
本地端口是外部访问群晖的端口,容器端口是群晖访问容器的端口
所以修改本地端口为自己想要的端口,注意合理规划自己的端口号,避免端口冲突
3.4.5 存储空间设置
添加文件夹,选择之前创建好的calibre_web路径(这里不要直接复制,我创建的是下划线)
并对应装载路径/calibre-web(建议直接复制,注意这里是-不是下划线)
(习惯问题,自己设置的命名,不喜欢在中间加-,喜欢用下划线_)
(如果重新安装,建议删除//calibre-web下的app文件夹内容,我不确定是不是只删除)
再次添加文件夹,选择之前创建的books目录(calibreBooks目录),并装载路径/books
然后点击下一步,后面弹出内容点击完成,即可完成创建
注意这里还是要说明,一定要按照3.3的内容进行操作,否则真的真的容易出权限问题
而且再次重申,必须用二级目录挂在/books,否则真的真的容易出权限问题
也看到了docker部署,权限问题是最重要的,我反复强调
问题举例:如下3个例子,多多少少都和权限有关系
[WARNING] No write access at /books - new 'metadata.db' and books can't be stored at this directory
| stdout | |
20:03:13 | ||
[WARNING] No write access at /books - app.db and gdrive.db wont be linked into /books
3.5 等待
3.5.1 查看日志
创建容器后因为设置了自动启动容器,它会自动启动并从github下载相应的程序自动完成其他部署
我们可以查看日志,观察进度
点击docker、容器 右键点击该容器,选择详情
在弹出页面中选择日志
输出的最后是这两行
[INFO] Kindlegen application exists already in directory: /calibre-web/kindlegen
[INFO] kindlegen (Amazon Kindle Generator) will be linked into /calibre-web/app/vendor
如果有错误也是在这里面会看到
3.5.2 我的未解问题
并不知道如何解决,不会python也没搜到怎么解决,希望懂得大神看到了能帮我解决一下
我最后也成功启动了,也不影响使用,但是有这个端口代理问题
3.6 web端
3.6.1 初次登录
在地址栏中输入你的nas域名:8083,不一定是8083,看你在3.4.4中如何设置的。
比如192.168.50.222是nas在局域网中的ip地址,那么就输入192.168.50.222:8083
3.6.2手动选择库位置
在输入框中输入 /books
然后点击save如果没有异常,就可以进行下一步
3.6.3 修改中文界面、修改密码、邮箱地址等
点击全部页面右上角的admin,图标是小人的那个,而且全是小写的
注意不要点错了,由于缩写问题,导致显示内容是一样的。
在弹出的页面中,把需要修补的内容修补好,即可点击save保存。
保存后,刷新页面生效。后面的英文,就都变成中文显示了
3.6.4 开启网页单本上传
右上角找到管理权限,点击进而修改管理配置
在弹出的界面中的中间部位即“配置”中找到“编辑基本配置”
选择功能配置,并且点击启用上传
(不建议启用注册,只给自己和家人使用,需要新账号就在管理页面开通,毕竟。。。不好)
保存然后刷新界面,就可以看到上传书籍了
3.6.5 创建新用户
还是我可恶的权限管理作祟
无论是管理员账号和正常使用账号分开,还是有需求都要创建一个新账号
依旧是管理权限,右上角找到管理权限,点击进而修改管理配置
新页面中,选择添加新用户
权限作为使用者,建议只给允许下载书籍以及允许在线阅读两个权限
(上传书籍可能会导致bug,可能,我也不知道具体是什么原因导致的bug)
值得注意的是,这里有一个按语言显示书籍,有什么作用。。。那就dddd了
3.6.6 本地批量上传
一、下载pc客户端
我们需要在pc上安装calibre的软件,下载地址即官网如下
calibre - Download calibre (calibre-ebook.com)
二、选择书库
在安装过程中,需要选择库,记住这个书库一定要选到nas上的对应位置/books位置上,不然就是徒增烦恼
三、连接到nas
选择“连接/共享”连接到nas文件夹,即3.3中的目录位置
四、批量添加书籍
选择批量上传图书的文件夹
然后就等他慢慢操作吧,特别慢。。。
3.7 外网域名
3.7.1 给nas装好证书
这部分内容,大家自行搜索 ddns-go实现群晖外网域名访问 类似这种攻略吧
一般ddns-go解析了自己的域名的时候,都会顺便把证书安装好了
因为我的记录都是在把nas搭好之后写的,所以当时就弄好的东西,当时也没想起来存一下网页(这点还被朋友吐槽了。。。hhh)
3.7.2 反向代理服务器
在控制面板-登陆门户-高级中,选择方向代理服务器
弹出页面中点击“新增”
在反向代理服务器规则中
反向代理服务器名称 写 calibre-web方便管理
来源:
协议选http或者https,我选的是https,
主机名写你的域名
端口写8082或者你任选(建议出奇不意,但注意范围。)
目的地:
主机名,虽然看起来是灰色的不写好像是默认localhost,但是也要写上localhost不然他不通过
端口 3.4.4中设置的什么就写什么 我写的8083
最后点击保存即可实现通过域名访问你自己的电子图书馆了!
3.8 我遇到的一些bug以及解决办法或者干脆没有解决办法
3.8.1 或许是端口代理问题
在3.5.2中有提及,并没有解决
3.8.2 权限问题(如果按照该文按部就班操作,可以掠过不看)
于3.4.5中提及,解决办法也就在3.4.5中说明
参考的是docker hub上这个镜像的说明文档中的一些内容
以及
Hints & Tips
if you need SSL support similiar to the original Docker Container janeczku/calibre-web then use an additional NGINX or Apache HTTP Server as Reverse-Proxy, e.g see jwilder/nginx-proxy
if you don't specify PGID and PUID values the default PGID and PUID of the image are used, and if they are used then the mapped host volume/directory which is alligned to /books must have read-write-execute permission for others , otherwise the configuration of Calibre-Web can't be finished :-|
for Synology Users - don't map a top-level volume directory from the NAS as /books volume, e.g. /volume1/books because it results into problems with directory permissons. Create instead a subdirectory calibre at /volume1/books and map then /volume1/books/calibre as volume for /books
最后一段话说,不要用nas里的一级目录设置为/books的挂载,不然会有权限问题,这个我在3.3中也是说明过了的,如果按照我的经验来是不会出问题的
3.8.3 使用过程中我出现的问题
一、偶尔会对网页失联,过一会儿就好了(未解决)
二、pdf书籍在手机等移动设备无法在线阅读(未解决)
三、使用pdf转换epub会导致崩溃,甚至无法再打开网页(未解决)
这部分作者在github上也有一些说明
但是他并没有更新
建议不要用页面上的pdf转epub功能!
建议不要用页面上的pdf转epub功能!
建议不要用页面上的pdf转epub功能!
重要的事情说三遍
如果真的不小心使用了,别着急删除容器,只删除数据库,然后重启容器就行了。。。
四、疯狂添加的过程中会出现莫名其妙的bug(都未解决)
1、添加失败,我64000本电子书,添加了5个小时,最后只成功了2000多本
原因不明
2、虽然成功了2000多本,最后也导致了我的库崩溃了。。。
原因更不明
所以建议小批量,多批次的上传,就算出问题了,也知道把哪几本逆子书籍从pc端删除去,就能正常登录了。
五、不要在calibre的pc端开启的同时,网页上传书籍
会导致上传失败(看似成功,但是只要pc端一动,哪怕是单纯的关闭pc端,都会导致网页端的消失)
而且会导致莫名其妙的bug,甚至影响其他书籍,重则需要删除数据库重来
六、当然我说的删除数据库的操作,连上数据库再搞一搞应该还是能行的,可我不会呀!
七、因为我不使用kindle,用的是开放系统华为matepad paper,配合群晖,电子书想怎么得到就怎么得到,因而没有进行邮箱设置,所以这方面的内容,我就不弄了。
在我购买墨水屏的时候,已经有了这则消息,所以。。。dddd了!而且我在由苹果生态逐步向华为生态转变,所以没有选择墨水屏口碑更好的其他品牌。
3.9 总结
technosoft2000/calibre-web 看起来功能挺强大的,网上都说这个和另一个(也就是3.1中第一行那个映像)区别是有格式转换的,但是鉴于pdf转epub导致了整个的崩溃,我最后也不敢轻易的尝试其他的格式转换功能。。。
而且这个作者已经一年没有理财这个产品了,后续的更新维护都是问题。
所以后面有时间,我会继续尝试其他的映像。