电纸书
阅读量: 101
阅读人次: 102
Talebook
Talebook 是一个开源的在线电子书阅读和管理服务,基于 Calibre-Web 开发,提供了美观的 Web 界面和丰富的功能。相比 Reader,Talebook 具有更现代的界面设计和更完善的功能。
特性
- 支持多种电子书格式:EPUB, MOBI, AZW, AZW3, PDF, TXT 等
- 现代化的 Web 界面设计
- 在线阅读和书库管理
- 阅读进度同步和书签功能
- 支持用户管理和权限控制
- 内置推送服务(支持 Kindle)
- 支持邮件和微信推送
- 丰富的元数据管理
- 支持书籍分类和标签
- 响应式设计,支持移动端
Docker 部署
Talebook 可以通过 Docker 容器轻松部署:
docker run -d \
--name talebook \
--restart=always \
-p 8088:80 \
-v /mnt/user/appdata/talebook:/data \
-v /mnt/user/Books:/books \
talebook/talebook:latest
参数说明
| 参数 | 说明 |
|---|---|
-p 8088:80 | 端口映射,8088 是外部访问端口,80 是容器内部端口 |
-v /mnt/user/appdata/talebook:/data | 数据目录映射 |
-v /mnt/user/Books:/books | 电子书目录映射 |
初始配置
- 首次访问
http://192.168.5.3:8088 - 默认管理员账号:admin / admin123
- 登录后建议立即修改密码
- 在"设置"中配置邮件服务以启用推送功能
反向代理配置
location /talebook/ {
proxy_pass http://192.168.5.3:8088/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
推送服务配置
在管理界面中配置推送服务:
# 邮件推送配置
smtp.server=smtp.gmail.com
smtp.port=587
smtp.username=your-email@gmail.com
smtp.password=your-password
smtp.from=talebook@your-domain.com
# Kindle 推送
kindle.email=your-kindle-email@kindle.com
高级功能
- 自动元数据获取:自动从豆瓣读书、豆瓣电影等平台获取书籍信息
- 书籍转换:支持在线格式转换
- 阅读统计:提供详细的阅读统计信息
- 社交功能:支持书评和分享功能
故障排除
电子书无法打开
- 检查文件格式是否受支持
- 确认电子书文件没有损坏
- 尝试重新上传文件
推送功能不工作
- 检查邮件服务配置是否正确
- 确认 Kindle 邮箱已添加到发件人白名单
- 检查网络连接和防火墙设置
备份策略
建议定期备份 Talebook 数据:
#!/bin/bash
#description=备份 Talebook 数据
DATE=$(date +%Y%m%d)
BACKUP_DIR="/mnt/user/Backup/Appdata"
TAR_FILE="$BACKUP_DIR/talebook-$DATE.tar.gz"
tar -czvf $TAR_FILE /mnt/user/appdata/talebook
echo "Talebook backup completed: $TAR_FILE"
可以将此脚本添加到 User Scripts 中定期执行。
Reader
Reader 是另一个开源的阅读服务,为电子书阅读而设计。它支持多种电子书格式,提供了 Web 界面,让你可以通过浏览器管理、阅读和同步你的电子书收藏。
特性
- 支持多种电子书格式:EPUB, MOBI, AZW, AZW3, PDF, TXT 等
- 在线阅读和书库管理
- 阅读进度同步
- 书签和笔记功能
- 多用户支持
- 响应式 Web 界面
- 支持导入 Kindle 笔记
- 支持邮件推送电子书
Docker 部署
Reader 可以通过 Docker 容器轻松部署:
docker run -d \
--name reader \
--restart=always \
-p 8089:8080 \
-v /mnt/user/appdata/reader/logs:/logs \
-v /mnt/user/appdata/reader:/storage \
hectorqin/reader java -jar /app/bin/reader.jar \
--spring.profiles.active=prod \
--reader.app.secure=true \
--reader.app.secureKey=管理密码 \
--reader.app.inviteCode=注册邀请码
参数说明
| 参数 | 说明 |
|---|---|
-p 8089:8080 | 端口映射,8089 是外部访问端口,8080 是容器内部端口 |
-v /mnt/user/appdata/reader/logs:/logs | 日志目录映射 |
-v /mnt/user/appdata/reader:/storage | 数据目录映射 |
--reader.app.secure=true | 启用安全模式 |
--reader.app.secureKey | 管理员密码 |
--reader.app.inviteCode | 用户注册邀请码 |
环境变量配置
也可以通过环境变量进行配置:
docker run -d \
--name reader \
--restart=always \
-p 8089:8080 \
-v /mnt/user/appdata/reader:/storage \
-e READER_APP_SECURE=true \
-e READER_APP_SECUREKEY=管理密码 \
-e READER_APP_INVITECODE=注册邀请码 \
hectorqin/reader
反向代理配置
如果使用 Nginx 进行反向代理,可以添加以下配置:
location /reader/ {
proxy_pass http://192.168.5.3:8089/;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
# WebSocket 支持
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
使用方法
初始设置
- 首次访问
http://192.168.5.3:8089 - 使用设置的邀请码注册账号
- 管理员可以使用设置的 secureKey 进行管理操作
导入电子书
- 点击"上传"按钮上传电子书文件
- 支持批量上传
- 自动识别电子书元数据
阅读电子书
- 在书库中点击电子书封面开始阅读
- 支持调整字体大小、背景色等阅读设置
- 阅读进度会自动保存
邮件推送
配置邮件服务后,可以通过邮件推送电子书:
# 在配置文件中添加邮件设置
spring.mail.host=smtp.gmail.com
spring.mail.port=587
spring.mail.username=your-email@gmail.com
spring.mail.password=your-password
spring.mail.properties.mail.smtp.auth=true
spring.mail.properties.mail.smtp.starttls.enable=true
高级配置
数据库配置
默认使用 H2 数据库,也可以配置 MySQL:
# MySQL 配置
spring.datasource.url=jdbc:mysql://192.168.5.3:3306/reader?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
spring.datasource.username=reader
spring.datasource.password=your_password
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
存储配置
可以配置不同的存储后端:
# 本地存储
reader.storage.type=local
reader.storage.path=/storage/books
# 阿里云 OSS
reader.storage.type=oss
reader.storage.oss.endpoint=https://oss-cn-hangzhou.aliyuncs.com
reader.storage.oss.accessKeyId=your_access_key
reader.storage.oss.accessKeySecret=your_secret_key
reader.storage.oss.bucketName=your_bucket
移动端支持
Reader 提供了移动端适配的 Web 界面,也可以通过以下方式在移动设备上使用:
- 直接在手机浏览器中访问 Web 界面
- 将网页添加到主屏幕(类似原生应用)
- 支持离线阅读(已下载的电子书)
与 Calibre 集成
可以与 Calibre 配合使用:
- 使用 Calibre 管理电子书元数据
- 将处理好的电子书导入 Reader
- 利用 Calibre 的转换功能处理不兼容的格式
性能优化
预览图生成
# 启用预览图生成
reader.book.cover.generate=true
reader.book.cover.cache=true
缓存配置
# 缓存配置
reader.cache.enabled=true
reader.cache.size=500MB
reader.cache.expire=7d
故障排除
电子书无法打开
- 检查文件格式是否受支持
- 确认电子书文件没有损坏
- 尝试重新上传文件
阅读进度不同步
- 检查网络连接
- 确认登录的是同一账号
- 清除浏览器缓存后重试
性能问题
- 定期清理日志文件
- 限制同时上传的文件数量
- 使用 SSD 存储电子书文件
备份策略
建议定期备份 Reader 数据:
#!/bin/bash
#description=备份 Reader 数据
DATE=$(date +%Y%m%d)
BACKUP_DIR="/mnt/user/Backup/Appdata"
TAR_FILE="$BACKUP_DIR/reader-$DATE.tar.gz"
tar -czvf $TAR_FILE /mnt/user/appdata/reader
echo "Reader backup completed: $TAR_FILE"
可以将此脚本添加到 User Scripts 中定期执行。
服务对比
| 特性 | Talebook | Reader |
|---|---|---|
| 界面设计 | 现代化、美观 | 简洁、功能性强 |
| 推送功能 | 内置支持,配置简单 | 需要配置邮件服务 |
| 元数据管理 | 自动获取,功能丰富 | 基础功能 |
| 移动端体验 | 响应式设计优秀 | 基础响应式支持 |
| 部署难度 | 简单 | 简单 |
| 社交功能 | 支持 | 不支持 |
| 书籍转换 | 支持 | 不支持 |
与其他服务集成
这两个服务都可以与其他自托管服务集成:
- 与 Navidrome 共享媒体库
- 通过 Home Assistant 控制阅读
- 使用 Frp 进行外网访问