[开源] NowenReader - Go 写的自托管漫画 & 小说管理平台,单二进制部署,支持 17+ AI 模型 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
cropflre
V2EX    分享创造

[开源] NowenReader - Go 写的自托管漫画 & 小说管理平台,单二进制部署,支持 17+ AI 模型

  •  
  •   cropflre 3 月 18 日 875 次点击

    嗨,V 友们好!

    分享一个我开发的开源项目 NowenReader,一个自托管的漫画 & 小说管理阅读平台。

    GitHub: https://github.com/cropflre/nowen-reader

    做这个项目的原因

    家里 NAS 上堆了几千本漫画和小说,试了一圈 Komga 、Kavita 、Calibre-web ,要么不支持中文元数据抓取,要么部署依赖太重( Node/Java ),要么对小说支持太弱。干脆自己造了一个。

    核心亮点

    Go 单二进制,开箱即用

    • 无需 Node.js/Java/Python ,一个文件就是全部
    • 前端编译进二进制( go:embed ),真正的一键部署
    • SQLite 零配置数据库,纯 Go 实现无需 CGO

    漫画 + 小说全覆盖

    • 漫画:ZIP/CBZ/CBR/RAR/7Z/PDF
    • 小说:TXT/EPUB/MOBI/AZW3
    • 内置翻页阅读器 + 小说智能分章

    AI 深度集成

    • 支持 17+ LLM 供应商( OpenAI/Claude/Gemini/DeepSeek/本地 Ollama 等)
    • AI 智能打标签、语义搜索、封面相似度检测
    • AI 对话式漫画/小说分析

    元数据抓取

    • AniList / Bangumi / MangaDex / MangaUpdates / Kitsu 五大源
    • ComicInfo.xml 自动提取
    • 中英文标签自动翻译

    阅读统计

    • 阅读时长、每日趋势、年度报告
    • 阅读目标设定与追踪
    • JSON/CSV 数据导出

    生态兼容

    • OPDS 协议,支持 KOReader / Moon+ Reader
    • WebDAV 云同步,跨设备阅读进度同步
    • PWA 支持,手机上可安装为 App

    NAS 友好

    • Docker 多平台镜像( amd64/arm64 )
    • 专门的 NAS 部署配置(群晖/威联通/铁威马)
    • 内存限制 512MB 即可跑

    快速体验

    # Docker 一行启动 docker run -d -p 6680:3000 -v ./comics:/app/comics -v ./data:/data cropflre/nowen-reader:latest 

    打开 http://localhost:6680 即可使用。

    技术栈

    后端 Go + Gin + SQLite
    前端 Vite + React + TypeScript
    部署 Docker 多阶段构建 / 单二进制
    多语言 中文 / English / 日本

    截图

    1 2


    项目还在积极开发中,最近刚加了重复检测( MD5 哈希比对)、书架系统、阅读目标等功能。

    欢迎 Star 和提 Issue ,也欢迎 PR !有任何问题直接在帖子里问我。

    GitHub: https://github.com/cropflre/nowen-reader


    4 条回复    2026-03-23 11:30:26 +08:00
    Sunyin
        1
    Sunyin  
       3 月 18 日
    有点意思,回头试一下,目前是 Komga+KMReader 使用的,先 Star 了
    cropflre
        2
    cropflre  
    OP
       3 月 18 日
    @Sunyin 感谢支持,结合 AI 效果更佳~~
    Joeith
        3
    Joeith  
       3 月 21 日
    既然楼主想做的漫画管理,那可以假设楼主深度用过 Komga 与 Kavita ,这两者在漫画管理都到了一定的高度。
    其他不用多说,基本很基础。

    那想想问问 仅在日漫的管理里,

    有两种核心的逻辑,一种是 kavita 的强依赖元数据与命名,差一点哪怕同文件夹也不会成 group ,当前好处也很明显。

    而 Komga 较粗犷的文件夹管理,只要是一层的文件夹均属于一个 series ,,在这个基础上来搭建漫画管理逻辑,好处自然入门容易( Komga 普及度也是最高),而进一步去完善漫画管理,进阶的成套管理,挺难达到 kavita 的管理颗粒度。

    那楼主的在这方面的思考是啥样,如何平衡两者的来做进阶漫画管理?

    另外同人志,商业志,画册等等又与正常漫画的管理逻辑不一样,楼主会进一步考虑如何区分里面的逻辑
    cropflre
        4
    cropflre  
    OP
       3 月 23 日
    @Joeith Komga vs Kavita ?我全都要
    说实话,我觉得这俩都"偏科"了:

    Komga 像个随和的室友你随便丢文件夹里就行,它不挑。但你想精细管理?它就摆烂了。

    Kavita 像个强迫症管家命差一个字都不认,但认了之后管得确实细。

    NowenReader 想做的是一个渐进式的方案:

    入门时像 Komga:丢文件夹里就自动成组,零门槛

    进阶时靠智能匹配:散落的文件通过标题解析(繁简归一化、去卷号、去扫图组标记等)自动归系列

    终极靠 AI 兜底:跨语言的、格式乱七八糟的,交给 AI 做语义分析来归组

    而且所有分组都是虚拟的,不动你的文件系统。你觉得分错了,拖一下就改了。不像 Komga/Kavita 你得真的去改文件夹或文件名。

    同人志、商业志、画册的区分
    坦白讲,目前还没有在产品层面把这块系统化。当前可以通过标签系统手动区分(比如打上"同人志""画册"标签),但确实没做到自动识别和差异化管理。

    这块我确实在思考,理想状态是:

    商业志:按卷号管理,关注连载进度

    同人志:按社团/展会( C99 之类)维度组织,弱化卷号概念

    画册/设定集:弱化阅读进度,偏浏览模式

    文件名解析里其实已经能识别 (C99) [社团名] 这些标记了,后续可以用这些信息自动归类。但要做好还需要时间打磨,先把核心的系列分组做扎实再说。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2801 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 21ms UTC 15:19 PVG 23:19 LAX 08:19 JFK 11:19
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86