大家好!分享一个我开发的开源项目 —— NowenReader,一个专为NAS用户打造的自托管漫画 & 小说管理阅读平台。
🤔 为什么做这个?
相信很多NAS用户都有大量的漫画、小说资源,但一直缺少一个好看、好用、轻量的管理工具。市面上的方案要么太重(动辄占用1G+内存),要么功能单一,要么不支持中文。所以我用 Go + React 从零撸了这个项目,专门为NAS场景优化:
- 💾 内存占用低:限制 512MB 就能流畅运行,实际日常占用更低
- 📦 单文件部署:Go 编译成单个二进制文件,前端嵌入其中,零依赖
- 🐳 Docker 一键启动:提供 NAS 专用 compose 配置,5 分钟搞定
- 🏗️ 支持 amd64 / arm64,覆盖绝大部分NAS机型
✨ 核心功能一览
📚 全格式支持
- 漫画:ZIP / CBZ / CBR / RAR / 7Z / CB7 / PDF
- 小说:TXT / EPUB / MOBI / AZW3
- 你NAS里的资源基本都能直接识别
🔍 智能管理
- 自动扫描文件系统,新文件自动入库
- 多标签 & 多分类管理,标签颜色自定义
- 书架系统,灵活归类你的收藏
- 收藏 & 1-5星评分
- 批量操作:批量打标签、分类、删除,管理大量资源毫不费力
🌐 元数据抓取
- 支持 AniList / Bangumi / MangaDex / MangaUpdates / Kitsu 五大数据源
- 自动读取 ComicInfo.xml 内嵌元数据
- 中英文标签自动翻译
🤖 AI 智能辅助(可选,不开也完全不影响使用)
- 支持接入主流AI大模型
- 智能打标签、语义搜索、封面相似度检测
- 个性化阅读推荐
📖 内置阅读器
- 漫画翻页阅读器,支持进度记忆
- EPUB 章节渲染、TXT 智能分章
- 阅读统计:时间、会话、每日趋势
- 阅读目标:设定每日/每周目标,追踪进度
- 数据导出:JSON 全量导出、CSV 会话导出
📡 协议支持
- OPDS 协议 — 手机上用 KOReader / Moon+ Reader 直接连
- WebDAV 云同步 — 跨设备阅读进度同步
🌍 多语言 & PWA
- 支持中文 / English / 日本語
- 手机浏览器"添加到主屏幕",体验接近原生App
🚀 飞牛NAS部署教程
方式一:Docker Compose(推荐)
SSH 登录你的飞牛NAS,创建目录:
mkdir -p /volume1/docker/nowen-reader
cd /volume1/docker/nowen-reader
创建 docker-compose.yml 文件:
services:
nowen-reader:
image: cropflre/nowen-reader:latest
container_name: nowen-reader
restart: unless-stopped
ports:
- "6680:3000"
volumes:
# 数据持久化
- ./data:/data
- ./cache:/app/.cache
# 漫画目录 - 改成你NAS上的实际路径
- /vol1/1000/漫画:/app/comics
# 如有多个目录可继续挂载:
# - /vol1/1000/小说:/mnt/novels
environment:
- GIN_MODE=release
- DATABASE_URL=/data/nowen-reader.db
- COMICS_DIR=/app/comics
- DATA_DIR=/app/.cache
- PORT=3000
- TZ=Asia/Shanghai
deploy:
resources:
limits:
memory: 512M
启动:
docker compose up -d
浏览器访问:http://NAS的IP:6680,注册账号即可开始使用!
方式二:飞牛Docker管理界面
- 打开飞牛Docker管理 → 镜像 → 搜索
cropflre/nowen-reader → 下载 latest
- 创建容器,设置端口映射:6680 → 3000
- 添加存储空间映射:
| 容器路径 |
NAS路径(示例) |
说明 |
| /data |
/vol1/1000/docker/nowen-reader/data |
数据库(重要) |
| /app/.cache |
/vol1/1000/docker/nowen-reader/cache |
缩略图缓存 |
| /app/comics |
/vol1/1000/漫画 |
你的漫画/小说目录 |
- 添加环境变量:
| 变量名 |
值 |
| GIN_MODE |
release |
| DATABASE_URL |
/data/nowen-reader.db |
| COMICS_DIR |
/app/comics |
| DATA_DIR |
/app/.cache |
| TZ |
Asia/Shanghai |
- 启动容器,访问
http://NAS的IP:6680
💡 使用小贴士
- 多目录挂载:漫画/小说分散在多个文件夹?把它们都挂载进容器(如 /mnt/manga、/mnt/novels),然后在 Web 界面的 设置 → 额外漫画目录 中添加路径即可
- 手机访问:用手机浏览器打开地址后,选择"添加到主屏幕",可以获得类似App的体验
- OPDS连接:在手机阅读器(如 KOReader)中添加 OPDS 目录
http://NAS的IP:6680/api/opds,即可远程串流阅读
- 自动扫描:放入新文件后无需手动操作,系统会自动检测并入库
- 更新版本:
docker compose pull && docker compose up -d 即可无缝升级
🏗️ 技术栈
| 组件 |
技术 |
| 后端 |
Go 1.23 + Gin |
| 前端 |
Vite + React + TypeScript |
| 数据库 |
SQLite(零配置,纯Go实现) |
| 容器 |
Docker 多平台(amd64 / arm64) |
| 协议 |
OPDS + WebDAV |
📌 项目信息
- 🐳 镜像名:
cropflre/nowen-reader:latest
- 📄 开源协议:MIT(完全免费,随意使用)
- 🏗️ 支持架构:amd64 / arm64
如果觉得好用,欢迎去 GitHub 点个 ⭐ Star 支持一下!项目地址:https://github.com/cropflre/nowen-reader
有任何问题或建议欢迎在评论区交流~


