本期来介绍一款 Docker 项目,用来在 NAS 上搭建一个带 Web 界面的小说搜索、下载和导出工具。
对于我个人而言,虽然像之前介绍过的 Reader 这类工具支持导入书源在线阅读,但如果是一些想长期收藏的内容,我还是更倾向于放在 NAS 或本地保存。毕竟在线站点存在访问不稳定、链接失效、章节缺失、加载变慢等情况,把内容整理到自己的存储空间里,会更符合 NAS 用户的使用习惯。

这次体验的项目是go-novel-dl。要注意的是它并不万能,较为适合有本地化整理需求的用户:能搜到的内容,可以通过 Web 页面下载、导出,再统一存放到 NAS 中,方便后续归档和阅读。
项目介绍
完整项目名:guohuiyuan/go-novel-dl,可于GitHub搜索。其实跟之前介绍的Go Music DL是同一个作者。

go-novel-dl 是 Go 语言开发的多源小说下载器,支持 CLI 与 Web 界面,可跨站点并发搜索、一键下载并导出,已适配 ESJZone、SFACG、刺猬猫、若初文学等多个书源。
项目能力
- 聚合搜索:并发搜索多个站点,按书名/作者归并同作品变体,达到结果数后提前返回并取消剩余慢源请求
- 混合结果排序:结合关键词匹配、站点优先级、简介完整度、封面可用性选出主结果
- URL 直达:CLI 下载和 Web 搜索都支持直接输入站点链接进行解析
- 详情页预取:Web 详情通过 DownloadPlan 拉取目录与书籍元数据
- Web 阅读器:支持按需加载章节正文、上下文预加载、滚动续读、主题/背景/字号和章节排版设置
- Web 内容缓存:详情页和章节正文带 TTL 缓存与并发请求合并,减少重复抓取
- 异步下载:Web 下载任务异步执行,通过轮询查询进度与导出文件
- 分阶段存储:原始数据、处理后数据、导出文件分层保存
- 多格式导出:支持 txt、html、epub
- 图片处理:支持章节图片保留、EPUB 图片抓取与压缩
- 统一配置:CLI 与 Web 共用 data/site_catalog.db
- 站点级配置:支持可选登录/Cookie、镜像、并发、抓图、文字转换和缓存开关;ESJ Zone 搜索和详情无需预先配置账号
- 站点兼容:支持 Alice Book House 加密章节接口、Linovelib 多页目录、轻之文库/轻小说百科/神凑轻小说等站点差异处理
- Web 图片模糊化:全局配置可开启网页图片模糊显示,降低展示风险
部署流程
以威联通NAS为例,通过Docker Compose的方式进行部署。
部署代码如下:
services:
novel-dl:
image: guohuiyuan/go-novel-dl:latest
container_name: novel-dl
restart: always
ports:
- "18089:8080"
volumes:
- /share/Container/novel-dl/data:/home/appuser/data
environment:
- TZ=Asia/Shanghai
command: ["./novel-dl", "web", "--port", "8080", "--no-browser"]
打开威联通的Container Station,创建新的应用程序。

使用一览
部署完毕后,浏览器输入NAS_IP:18089即可访问服务。

可以先打开右上角的设置中心,对全局下载参数和站点参数进行简单配置。
左侧主要是下载并发、请求超时、请求间隔、文字转换、默认导出格式、Web 每页数量、CLI 每页数量,以及 Raw 数据目录、缓存目录、导出目录等基础选项。这里建议保持默认配置即可,导出格式可以按需填写 txt,epub,方便后续直接在 NAS 里保存为文本或电子书文件。

右侧是站点配置,配置完成后点击保存即可,后续下载的内容会按照设置写入 NAS 挂载的数据目录中。支持可选登录/Cookie、镜像、并发、抓图、文字转换和缓存开关,ESJ Zone 搜索和详情无需预先配置账号。
输入名字搜索,默认渠道全勾选,根据需求取消。


选择心仪的结果进入,可以在线看,也可以下载导出。

执行完毕。

NAS的位置如下图,开头也说过可以在设置中修改位置。

后续便可以通过NAS部署的电子书服务,或者其他端的阅读工具看了。


最后推荐开头我在自用的 私有 电子书+漫画 服务器:Kavita,去年也是分享过部署流程的。

最后
如果你也有威联通 NAS,并且平时有小说归档、电子书整理、本地阅读这类需求,那么这个项目可以部署体验一下。配置不复杂,占用资源也不高,用来给 NAS 增加一个轻量级的书籍整理入口,还是比较合适的。
评论区