(笑)说实话,作为一个爱看小说的人,这些年用过的阅读 APP 真的太多了。
微信读书要充会员,Kindle 已经退出中国,各种第三方 APP 要么广告满天飞,要么动不动就下架,存的书说没就没...
讲真,如果你有一台自己的服务器或者 NAS,今天这篇文章绝对能让你彻底实现"看书自由"。
我要介绍的是 Reader —— 也就是大家熟悉的"阅读3"服务器版,一个可以自托管的私人电子书库。
Reader 到底是什么?
简单说一下,Reader 是开源阅读软件"阅读3.0"的服务器版本,由大神 hectorqin 开发。
如果你对"阅读"这个 APP 不熟悉,它可以说是安卓平台上最强的网文阅读工具,支持导入各种书源,一个 APP 就能搜遍全网小说。
而 Reader 就是把这套功能搬到了服务器上,让你可以通过浏览器访问,任何设备都能用。
它最吸引我的几个点:
- 完全自托管,数据存在自己服务器上,不用担心书源失效或 APP 下架
- 多格式支持,不仅支持在线阅读,还能导入本地的 TXT、EPUB、PDF、UMD 等格式
- 全平台访问,只要有浏览器就能看,手机、平板、电脑通吃
- WebDAV 同步,可以和手机上的阅读 APP 同步书架和进度
今天主要讲讲怎么用 Docker 快速部署 Reader。
准备工作
开始前,确保你有以下条件:
- 一台 Linux 服务器(VPS、NAS、树莓派都行,只要能跑 Docker)
- 安装了 Docker 和 Docker Compose
如果你还没有 Docker,可以用这个一键安装脚本:
curl -fsSL https://get.docker.com | sh
Docker 部署 Reader
Reader 的 Docker 部署其实特别简单,官方已经提供了镜像。
1. 创建 docker-compose.yml
在服务器上创建一个目录,比如 ~/reader:
mkdir -p ~/reader && cd ~/reader
然后创建 docker-compose.yml 文件:
version:'3'services:reader:image:hectorqin/reader:latestcontainer_name:readerports:-"8080:8080"volumes:-./data:/storage/data-./logs:/logs-./storage:/storageenvironment:-READER_SERVER_PORT=8080-READER_SERVER_CONTEXT_PATH=/-READER_APP_SECURE=false-READER_APP_SECURE_KEY=your_secure_key_here-READER_APP_INVITE_CODE=your_invite_code_hererestart:unless-stopped
这里说明一下:
ports 将容器的 8080 端口映射到主机的 8080 端口(可以改成你喜欢的端口)volumes 挂载了数据、日志和存储目录,这样重启容器后数据不会丢environment 设置了一些环境变量,包括端口号、安全密钥、邀请码等(建议修改默认值)
2. 启动服务
一切准备就绪,启动容器:
docker-compose up -d
查看运行状态:
docker-compose ps
正常情况下,你会看到:
NAME COMMAND SERVICE STATUSreader "java -jar reader.…" reader running
查看日志确认启动成功:
docker-compose logs -f reader
看到类似 Started ReaderApplication in x.x seconds 的日志,说明启动成功了。
3. 开放端口(云服务器需要注意)
如果你用的是阿里云、腾讯云等云服务器,记得去安全组里放行你映射的端口(默认是 8080)。
访问和使用
首次访问
在浏览器中输入:
http://你的服务器IP:8080
比如你的服务器 IP 是 1.2.3.4,那就访问:
http://1.2.3.4:8080
初始配置
首次打开会要求输入邀请码,这就是你在 docker-compose.yml 里设置的 READER_APP_INVITE_CODE(默认是 your_invite_code_here,建议改掉)。
进入主界面后,你可以:
导入书源点击左上角菜单 → 书源管理 → 导入书源,可以导入网上找到的书源 JSON 文件。
搜索书籍在首页搜索框输入书名,Reader 会调用书源搜索全网资源。
导入本地书籍支持上传本地的 TXT、EPUB、PDF 等格式到服务器阅读。
设置 WebDAV在设置中配置 WebDAV,可以和手机上的阅读 APP 同步书架和阅读进度。
进阶玩法
绑定域名 + HTTPS
如果你有自己的域名,可以通过 Nginx 反向代理绑定域名,并配置 SSL 证书实现 HTTPS 访问:
server {listen443 ssl;server_name reader.yourdomain.com;ssl_certificate /path/to/cert.pem;ssl_certificate_key /path/to/key.pem;location / {proxy_pass http://127.0.0.1:8080;proxy_set_header Host $host;proxy_set_header X-Real-IP $remote_addr; }}
自动更新书源
可以写个定时任务,定期从网上拉取最新的书源文件并自动导入,保持书源的新鲜度。
常见问题
Q: 书源导入失败怎么办?
检查书源 JSON 格式是否正确,可以在 JSON 格式化工具里验证一下。另外部分书源可能需要特定头部或 Cookie 才能使用。
Q: 搜索不到书怎么办?
确认书源已正确导入且启用。不同书源覆盖的网络资源不同,建议多导入几个书源试试。
Q: 阅读进度丢失怎么办?
检查是否开启了浏览器的无痕模式,或者清除了本地存储。建议配置 WebDAV 同步,将进度保存到云端。
Q: 如何备份数据?
Reader 的所有数据都保存在 ~/reader/data 目录下,定期备份这个目录即可。也可以用 docker-compose down 停止服务后打包整个 ~/reader 目录。
写在最后
说实话,自建一个私人的电子书库,体验真的比各种商业阅读 APP 好太多了。
没有广告打扰,不用担心书源失效,数据完全自己掌控,想看什么书直接搜直接看。
而且 Reader 的功能真的很全面,从书源阅读到本地书籍管理,从 WebDAV 同步到 Kindle 推送,几乎覆盖了所有阅读场景。
如果你正好有闲置的服务器或 NAS,强烈推荐试试 Reader,打造一个真正属于自己的私人书库。
推荐阅读:
如果这篇文章对你有帮助,欢迎点赞、在看、转发三连支持!有问题也可以在评论区留言,我会尽量回复。
引用链接
[1]Reader 官方文档: https://github.com/hectorqin/reader/blob/master/doc.md
[2]Reader 界面预览: https://github.com/hectorqin/reader/blob/master/preview.md
[3]书源仓库(第三方): https://github.com/search?q=%E9%98%85%E8%AF%BB+%E4%B9%A6%E6%BA%90&type=repositories