书虫看过来!保姆级Docker书库部署攻略:远程本地都支持、自动朗读、手机也能用
大家好!马上过年啦,先在这儿预祝大家新年快乐,新的一年多入值得好物
▲今天给大家带来的是很棒的一款电子书库应用,部署过程特别简单,全程安装不会超过3分钟,很实用!最初接触到这个项目,是看@眯眼看你吃榴莲大哥的攻略,当时照葫芦画瓢到现在部署得有一年多,年假闲着没事在github上乱翻,看到作者又更新,正好重新捣鼓一下顺便记录~
▲reader不仅支持网页看书、还可以手机浏览器看书、多端同步阅读进度,还能语音自动朗读,真的是“强大到离谱”,此外,经过测试漫画也可以放进去将就阅读一下~

▲书库软件选择:使用reader应用,一款既可以通过书源全网搜书,也可以添加本地书籍的软件。支持各种国际语言朗读、修改封面等。
▲本攻略适用机型:由于使用的docker应用,理论上支持市面上绝大多数NAS设备(威联通、群晖等)及linux云服务器!
功能与特点
- 书架管理和布局
- 搜索、书海、看书、换源
- 移动端适配、多端同步阅读记录
- 翻页方式
- 手势支持
- 自定义主题与样式
- WebDAV同步
- 文字替换过滤
- 听书<仅部分浏览器支持,手机端会因为锁屏而失效>
- 用户配置备份恢复
- 支持漫画和音频
- 书源失效检测
- 导入本地TXT、EPUB、UMD、PDF格式的书籍
- 书籍分组
- RSS订阅
- 定时更新书架
- 并发搜书
- 本地书仓
- 支持kindle阅读
准备工作
▼找到Container文件夹,目录下建立文件夹:reader,在reader文件夹下再创建两个文件夹:logs和storage,分别为日志映射目录和数据映射目录,如下图所示。

部署
本篇依次介绍四种部署方式:拉取Docker映像、Docker run、Docker Compose部署以及云服务器部署
威联通Docker映像部署
最简单直接的方式~
▼正常情况按照下图箭头所示,点击『创建』,输入"hectorqin/reader:latest",若是喜欢其它版本,冒号右侧替换成对应的版本号,例如"hectorqin/reader:1.4.2"

▼但是现在的大环境我们也都清楚,不加魔法绝大多数情况安装会失败,那只能采取另外一种办法,如下图所示,点击右上角『提取』,输入"hectorqin/reader:latest",再点击左上角『提取』

▼提取完毕后,点击最右侧的启动按键,就可以进行安装

▼直接选择『下一步』

▼端口设置成设备上未占用的端口,点击『高级设置』

▼点击『环境』,增加三条变量:
READER_APP_SECURE=true 是否需要登录鉴权
READER_APP_SECUREKEY=YDXian1234 管理员密码
READER_APP_INVITECODE=66668888 注册邀请码(不设置则为不限制注册)
▼按照个人习惯设置,没有硬性要求~

▼选择『存储』,点击『绑定装载主机路径』,将上文创建的两个文件夹挂上。

检查无误后点击『应用』,之后点击『完成』,等待docker安装即可
威联通Docker run部署
▼作者提供的三个版本
# 自用版(建议修改映射端口)
docker run -d --restart=always --name=reader -e "SPRING_PROFILES_ACTIVE=prod" -v $(pwd)/logs:/logs -v $(pwd)/storage:/storage -p 8080:8080 hectorqin/reader
# 多用户版(建议修改映射端口)
docker run -d --restart=always --name=reader -v $(pwd)/logs:/logs -v $(pwd)/storage:/storage -p 8080:8080 hectorqin/reader java -jar /app/bin/reader.jar --spring.profiles.active=prod --reader.app.secure=true --reader.app.secureKey=管理密码 --reader.app.inviteCode=注册邀请码
# 多用户版 使用环境变量(建议修改映射端口)
docker run -d --restart=always --name=reader -e "SPRING_PROFILES_ACTIVE=prod" -e "READER_APP_SECURE=true" -e "READER_APP_SECUREKEY=管理密码" -e "READER_APP_INVITECODE=注册邀请码" -v $(pwd)/logs:/logs -v $(pwd)/storage:/storage -p 8080:8080 hectorqin/reader
▼我们依然选用多用户版本,一劳永逸,以下是我修改过的指令;端口随意,文件目录对应上文准备工作中创建的两个文件夹,也别忘了修改管理密码及邀请码
docker run -d --restart=always --name=reader -e "SPRING_PROFILES_ACTIVE=prod" -e "READER_APP_SECURE=true" -e "READER_APP_SECUREKEY=admin" -e "READER_APP_INVITECODE=66668888" -v /share/Container/reader/logs:/logs -v /share/Container/reader/storage:/storage -p 8721:8080 hectorqin/reader
▼ssh登陆进NAS后台,直接复制粘贴上面改过的指令并回车,吐槽一句win10自带的终端ssh可真难用

此时,web端输入 NAS_IP:端口 即可进行访问
威联通Docker Compose部署
▼代码先贴下,与后文通用
version: '3.1'
services:
reader:
image: hectorqin/reader # 普通镜像
# image: hectorqin/reader:openj9-latest Openj9镜像,arm64架构或小内存机器优先使用
container_name: reader #容器名
restart: always
ports:
- 8096:8080 # 冒号左侧端口映射可自行修改
volumes:
- /share/Container/reader/logs:/logs # log映射目录可自行修改
- /share/Container/reader/storage:/storage # 数据映射目录可自行修改
environment:
- SPRING_PROFILES_ACTIVE=prod
- READER_APP_USERLIMIT=10 # 用户上限,默认且最大值为50
- READER_APP_USERBOOKLIMIT=1000 # 用户书籍上限,默认200
- READER_APP_CACHECHAPTERCONTENT=true # 开启缓存章节内容
- READER_APP_REMOTEWEBVIEWAPI=http://readerwebview:8050 #启用webview(若下方readerwebview容器不开启需注释此行
# ↓多用户模式配置↓
- READER_APP_SECURE=true #开启登录鉴权,开启后将支持多用户模式
- READER_APP_SECUREKEY=adminpwd #管理员密码 建议修改
- READER_APP_INVITECODE=registercode #注册邀请码 建议修改,如不需要可注释或删除
# 如需支持webview书源,打开(占用较大,不需要可加 # 注释或直接删掉)
readerwebview:
image: hectorqin/remote-webview
container_name: readerwebview
restart: always
environment:
- TZ=Asia/Shanghai
# 自动更新docker镜像
watchtower:
image: containrrr/watchtower
container_name: watchtower
restart: always
environment:
- TZ=Asia/Shanghai
volumes:
- /var/run/docker.sock:/var/run/docker.sock
command: reader readerwebview watchtower --cleanup --schedule "0 0 4 * * *"
# 仅更新reader与watchtower容器,如需其他自行添加 '容器名' ,如:reader watchtower nginx
# --cleanup 更新后清理旧版本镜像
# --schedule 自动检测更新 crontab定时(限定6位crontab) 此处代表凌晨4点整
volumes:
reader:
readerwebview:
▼按照下图顺序进行操作

▼同样的,等待创建即可,此时web端输入 NAS_IP:端口 即可进行访问

云服务器Docker-Compose部署
▲现在我手头有三个vps,还是建议大家购买HK或者海外vps,国内给我的体验可能也就做游戏服务器还有点用~
首先输入以下代码
sudo -i # 若不是root账户先执行这一步
mkdir -p /root/data/docker_data/reader # 创建docker目录
cd /root/data/docker_data/reader # 跳转到刚创建的目录下
# 创建映射目录,咱们可以另设置成其它目录
mkidr logs
mkdir storage
# 下载项目里的docker-compose.yaml文件
wget https://mirror.ghproxy.com/https://raw.githubusercontent.com/hectorqin/reader/master/docker-compose.yaml
vim docker-compose.yaml # 编辑配置
英文输入状态下,在该界面按下"i"键盘可进行修改编辑,参考上面威联通docker compose安装代码进行调整即可,主要还是镜像类型、端口、映射目录这几个重要部分,用户上限、书籍上限等这些变量咱们按照需求改改就行,不想设置或保持默认,前面加个"#"给它注释掉~

修改完毕后,按下"esc",接下来同时按住"shift+:",英文状态下输入"wq"并回车即可保存退出

修改并保存退出后,输入以下命令,启动docker-compose
docker-compose up -d # 如果是新版本,docker-compose的"-"可替换空格
完整的操作流程如下图所示,大家可以参照一下

反向代理
可参考这篇内容
这里就放两张图,IP填写reader所在的服务器IP,端口号为reader访问端口


点击save等一会就OK~
使用体验
未进行反代的话web端直接输入 服务器IP:端口号,做好反代直接域名访问即可;首次进入需要先注册一个账户

默认书源为空,~点击『导入书源』,将下载的书源文件导去,点击『确定』。

搜索自己挺喜欢的一本书

加入书架后即可进行阅读,该有的调节功能都具备,也支持在线朗读

进入管理模式后可以设置本地书仓,支持用户共享,统一存储管理本地书籍;可使用子目录对书籍进行分类,开启权限的用户支持一键导入书架,防止多用户上传浪费空间;另外。这里也可以对每个用户的书籍书源等项目进行单独设置

本地书库导入后一般而言没有封面,也没有刮削功能,如果要自动刮可以体验另一个书库软件calibre。但reader可以自定义封面,只需要传图即可。

自定义完成后就可以正常显示封面了,书本可以自定义分组,方便筛选。

reader做了移动端优化,体验也很棒

总结
reader是一款非常优秀的网络文学搜索工具,为广大网络文学爱好者提供一种方便、快捷舒适的试读体验。本篇仅寥寥介绍了部分功能,文章初始部分所列出的更多功,能大家可以部署后尽情体验!
本次分享到这儿就结束了,欢迎大伙评论区留言交流讨论分享;后续我也会定期分享好用、好玩的Docker项目及NAS使用经验,喜欢的朋友记得点赞、收藏、关注
咱们下期再见!

校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
java.lang.Exception: 不支持webview
请问搜好了书点击看不了,提示这个,是哪里配置错误了吗?手机端可以,PC端浏览器打开就提示这个。
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
java.lang.Exception: 不支持webview
请问搜好了书点击看不了,提示这个,是哪里配置错误了吗?手机端可以,PC端浏览器打开就提示这个。
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案
校验提示文案