Skip to content

Latest commit

 

History

5 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LoveReader

一个轻量、可自托管、面向手机阅读体验的 TXT 小说 Web 阅读器。

English

LoveReader 适合个人或小范围自用:PC 上传 TXT,手机端像 Kindle/微信读书一样分页阅读。项目使用单机架构,SQLite 保存数据,原始 TXT 存本地目录,阅读端按章节懒加载,避免一次性把整本书塞进浏览器。

功能特性

  • PC 端拖拽上传 TXT 小说。
  • 自动识别 UTF-8、GBK、GB18030、UTF-16 编码。
  • 自动章节识别,支持常见中文网文章节格式。
  • 大 TXT 优化:章节拆分、segment 存储、章节懒加载。
  • 移动端沉浸式阅读,支持点击/左右滑动翻页。
  • 目录抽屉、书签、阅读设置、原文搜索。
  • 全书搜索,点击结果可跳转到对应章节和页面,并高亮关键词。
  • 字号、行高、边距、主题、亮度等阅读设置。
  • localStorage + 服务端双进度保存,刷新后自动恢复。
  • IndexedDB 缓存章节、分页和离线队列。
  • PWA 支持,可添加到手机主屏幕。
  • JWT HttpOnly Cookie 登录。
  • 多账号管理,不开放公开注册。
  • 书籍可设置公开或仅自己可见。
  • Docker 单容器部署,可选 Redis 加速。

技术栈

  • Next.js 15 App Router
  • TypeScript
  • Tailwind CSS
  • shadcn/ui 风格的本地 UI 组件
  • Prisma ORM
  • SQLite
  • JWT HttpOnly Cookie
  • Zustand
  • IndexedDB

快速开始

pnpm install
cp .env.example .env
pnpm db:generate
pnpm db:migrate
pnpm dev

打开 http://localhost:3000

首次登录时会根据 .env 创建管理员账号:

ADMIN_USERNAME="reader"
ADMIN_PASSWORD="change-me"

如果部署到公网或局域网,请务必修改默认密码和 JWT_SECRET

Docker 部署

cp .env.production.example .env.production
docker compose up -d --build

默认端口映射:

宿主机 3100 -> 容器 3000
./data     -> /app/data

生产部署说明见 docs/deployment.md

常用命令

pnpm lint
pnpm test
pnpm build
pnpm test:e2e

项目结构

src/app              Next.js App Router 页面和 API Routes
src/features/auth    登录与账号管理
src/features/books   书架与 TXT 上传
src/features/reader  阅读器、分页、手势、搜索、缓存、进度
src/lib/auth         JWT、密码哈希、会话工具
src/lib/books        书籍权限与数据服务
src/lib/txt          编码识别、TXT 分章、文本切分
src/lib/offline      IndexedDB 与离线同步
prisma               SQLite schema、migration、seed
deploy               部署模板
tests                单元测试与 E2E 测试

设计取舍

  • 面向单机自托管,不引入复杂后台、微服务或消息队列。
  • SQLite 是唯一真源;Redis 只是可选缓存加速。
  • 阅读端不渲染整本书,只保留当前页附近的必要内容。
  • 上传书籍、SQLite 数据库、生产 .env 都不应该提交到仓库。

许可证

MIT

About

私人小说阅读器

Resources

Contributing

Security policy

Stars

3 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages