基于 AI 生成的 Web 版漫画阅读器,适用于 NAS Docker 部署。适配 copymanga-downloader 的下载结构。
- 翻页模式 — 支持从右到左(默认)和从左到右阅读方向
- 条漫模式 — 垂直长条滚动阅读,适合韩漫/条漫类作品;按漫画独立记忆模式偏好
- 双页拼合 — 跨页内容的拼页展开模式,可调整拼页偏移
- 沉浸式阅读 — 点击屏幕中心区域切换 UI 显示
- 自动章节跳转 — 到达章节边界时自动切换上/下一章(翻页模式和条漫模式均支持)
- 触摸手势 — 跟手拖拽 + 惯性翻页,方向锁定判定,边界回弹阻尼
- 键盘导航 — 方向键翻页/滚动,Escape 退出
- 自动解析元数据(名称、作者、简介、封面、状态等)
- 章节 / 卷册(分组)浏览,可切换标签页
- 模糊搜索 — 按名称、别名、作者搜索,支持模糊匹配与相关度排序
- 多维排序 — 按最近阅读、名称、更新日期、最新添加排序,偏好持久化
- 元数据编辑、自定义封面上传
- 章节/图片/漫画的删除管理
- 阅读进度持久化 — 服务端存储,章节级别精确到页码
- 继续阅读 — 详情页一键跳转到上次阅读位置
- 按最近阅读排序 — 漫画列表默认按最近阅读时间排序,有阅读记录的始终排在前面
- 简易 JWT 认证,支持环境变量配置账户
- 服务端漫画列表缓存(2 分钟 TTL)+ chokidar 文件监听自动失效
- 页面可见性检测,切回时自动刷新列表
- PWA 支持(Service Worker + Manifest)
- iPadOS / iOS Safari 视口高度适配
services:
comic-reader:
image: evlst/comicreader:latest
container_name: comicreader
ports:
- "13000:13000"
volumes:
- /volume2/漫画/comics:/app/comics
- /volume1/docker/comicreader/data:/app/data
restart: always
environment:
- NODE_ENV=production
# - ADMIN_USER=admin
# - ADMIN_PASS=admin
# - JWT_SECRET=your-secret-keydocker-compose up -d打开 http://localhost:13000
npm install
npm startcomics/
└── MangaTitle/
├── 元数据.json
├── cover.webp (可选,自定义封面)
├── 默認/
│ ├── 1 第01話/
│ │ ├── 章节元数据.json
│ │ ├── 001.webp
│ │ └── ...
│ └── 2 第02話/
└── 单行本/
└── 1 第01卷/
| 方法 | 接口路径 | 描述 |
|---|---|---|
| GET | /health |
健康检查 |
| POST | /api/login |
登录 |
| GET | /api/verify |
验证 Token |
| GET | /api/progress |
获取所有阅读进度 |
| GET | /api/progress/:id |
获取单本阅读进度 |
| PUT | /api/progress/:id |
更新阅读进度 |
| GET | /api/comics |
获取所有漫画 |
| GET | /api/comics/search |
搜索漫画 |
| GET | /api/comics/:id |
获取漫画详情 |
| GET | /api/comics/:id/cover/:filename |
获取封面图片 |
| GET | /api/comics/:id/:group/:chapter/images |
获取章节图片列表 |
| GET | /api/comics/:id/:group/:chapter/image/:filename |
获取单张图片 |
| PUT | /api/comics/:id/metadata |
更新元数据 |
| POST | /api/comics/:id/cover |
上传封面 |
| DELETE | /api/comics/:id/cover |
删除封面 |
| DELETE | /api/comics/:id/:group/:chapter |
删除章节 |
| DELETE | /api/comics/:id/:group/:chapter/image/:filename |
删除单张图片 |
| DELETE | /api/comics/:id |
删除漫画 |
MIT