跳到主要内容

电纸书

阅读量: 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电子书目录映射

初始配置

  1. 首次访问 http://192.168.5.3:8088
  2. 默认管理员账号:admin / admin123
  3. 登录后建议立即修改密码
  4. 在"设置"中配置邮件服务以启用推送功能

反向代理配置

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

高级功能

  • 自动元数据获取:自动从豆瓣读书、豆瓣电影等平台获取书籍信息
  • 书籍转换:支持在线格式转换
  • 阅读统计:提供详细的阅读统计信息
  • 社交功能:支持书评和分享功能

故障排除

电子书无法打开

  1. 检查文件格式是否受支持
  2. 确认电子书文件没有损坏
  3. 尝试重新上传文件

推送功能不工作

  1. 检查邮件服务配置是否正确
  2. 确认 Kindle 邮箱已添加到发件人白名单
  3. 检查网络连接和防火墙设置

备份策略

建议定期备份 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";
}

使用方法

初始设置

  1. 首次访问 http://192.168.5.3:8089
  2. 使用设置的邀请码注册账号
  3. 管理员可以使用设置的 secureKey 进行管理操作

导入电子书

  1. 点击"上传"按钮上传电子书文件
  2. 支持批量上传
  3. 自动识别电子书元数据

阅读电子书

  1. 在书库中点击电子书封面开始阅读
  2. 支持调整字体大小、背景色等阅读设置
  3. 阅读进度会自动保存

邮件推送

配置邮件服务后,可以通过邮件推送电子书:

# 在配置文件中添加邮件设置
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 界面,也可以通过以下方式在移动设备上使用:

  1. 直接在手机浏览器中访问 Web 界面
  2. 将网页添加到主屏幕(类似原生应用)
  3. 支持离线阅读(已下载的电子书)

与 Calibre 集成

可以与 Calibre 配合使用:

  1. 使用 Calibre 管理电子书元数据
  2. 将处理好的电子书导入 Reader
  3. 利用 Calibre 的转换功能处理不兼容的格式

性能优化

预览图生成

# 启用预览图生成
reader.book.cover.generate=true
reader.book.cover.cache=true

缓存配置

# 缓存配置
reader.cache.enabled=true
reader.cache.size=500MB
reader.cache.expire=7d

故障排除

电子书无法打开

  1. 检查文件格式是否受支持
  2. 确认电子书文件没有损坏
  3. 尝试重新上传文件

阅读进度不同步

  1. 检查网络连接
  2. 确认登录的是同一账号
  3. 清除浏览器缓存后重试

性能问题

  1. 定期清理日志文件
  2. 限制同时上传的文件数量
  3. 使用 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 中定期执行。

服务对比

特性TalebookReader
界面设计现代化、美观简洁、功能性强
推送功能内置支持,配置简单需要配置邮件服务
元数据管理自动获取,功能丰富基础功能
移动端体验响应式设计优秀基础响应式支持
部署难度简单简单
社交功能支持不支持
书籍转换支持不支持

与其他服务集成

这两个服务都可以与其他自托管服务集成: