一个简洁但强大的私人书籍管理系统。基于calibre项目构建,具备书籍管理、在线阅读与推送、用户管理、SSO登录、从百度/豆瓣拉取书籍信息等功能。
简单好用的个人图书管理系统
友情提醒:中国境内网站,个人是不允许进行在线出版的,维护公开的书籍网站是违法违规的行为!建议仅作为个人使用!
这是一个基于Calibre的简单的个人图书管理系统,支持在线阅读。主要特点是:
- 美观的界面:由于Calibre自带的网页太丑太难用,于是基于Vue,独立编写了新的界面,支持PC访问和手机浏览;
- 支持多用户:为了网友们更方便使用,开发了多用户功能,支持
豆瓣(已废弃)、QQ、微博、Github等社交网站的登录; - 支持在线阅读:借助Readium.js 库,支持了网页在线阅读电子书;
- 支持批量扫描导入书籍;
- 支持邮件推送:可方便推送到Kindle;
- 支持OPDS:可使用KyBooks等APP方便地读书;
- 支持一键安装,网页版初始化配置,轻松启动网站;
- 优化大书库时文件存放路径,可以按字母分类、或者文件名保持中文;
- 支持快捷更新书籍信息:支持从百度百科、豆瓣搜索并导入书籍基础信息;
- 支持私人模式:需要输入访问码,才能进入网站,便于小圈子分享网站;
本项目曾用名:calibre-webserver
Docker
部署比较简单,建议采用docker,镜像地址:dockerhub
推荐使用docker-compose
,下载仓库中的配置文件docker-compose.yml,然后执行命令启动即可。 若希望修改挂载的目录或端口,请修改docker-compose.yml文件。
wget https://raw.githubusercontent.com/talebook/talebook/master/docker-compose.yml
docker-compose -f docker-compose.yml up -d
如果使用原生docker,那么执行命令:
docker run -d --name talebook -p <本机端口>:80 -v <本机data目录>:/data talebook/talebook
例如
docker run -d --name talebook -p 8080:80 -v /tmp/demo:/data talebook/talebook
配置Kindle推送功能
以使用QQ邮箱推送为例,进入QQ邮箱网址, 申请SMTP账号,然后在管理员界面中配置即可。
请注意,用户名是必须包含邮箱后缀的(例如 @qq.com
),例如 [email protected]
配置用户登录功能
本程序支持用户注册及社交网站登录功能,按照管理员配置界面的说明,可以配置出符合自己需求的用户能力。
这里重点说明下常见的社交网站的API账号申请地址:
Logo
适用于v3.5.9及后续版本
favicon和导航菜单中的二维码logo,放置在数据目录 /data/books/logo/
中,可直接使用新图片覆盖掉。
适用于v3.5.8及更早版本
favicon和导航菜单中的二维码logo,已经内置在了代码目录/var/www/talebook/app/dist/img/
中。
- favicon.ico: 网站图标文件
- link.png: 二维码图片
如果需要定制修改这两个文件,请直接将使用新的文件覆盖即可。
若使用docker启动,则需要在docker启动时挂载这两个目录。例如:
docker run -d --name talebook -p 80:80 -v /data/calibre:/data -v /data/logo:/var/www/talebook/app/dist/img/ talebook/talebook
上传文件的大小
如果发现上传大文件时出现了失败,那么可能会有两种原因:
-
如果是程序抛出异常(例如issue#61),那么是由于本项目中的tornado框架默认限制为100M。请进入管理员配置中修改调大对应的配置。
-
如果明确提示
413
错误码,那么一般是由于nginx限制了上传大小。本项目中自带的nginx已配置了client_max_body_size 0
,即不限制上传大小; 因此建议使用者排查下是否在本项目之外配置有其他的nginx代理转发,调整其中的配置。
如果配置豆瓣插件
需启用cxfksword/douban-api-rs服务,然后将对应的URL地址(例如 http://10.0.0.1:8080
)填写到高级配置项中。
对于使用docker-composer启动的(例如使用 docker/docker-compose.yml
配置),那么URL地址为: http://douban-rs-api:80/
,因为依据docker-composer的说明,服务名称可解析出对应的IP地址。
常见问题排查
supervisord启动失败
如果有调整过supervisord里面的配置(例如端口、目录),一定要执行sudo supervisorctl reload all
重新读取配置,不然是不会生效的,可能会导致启动失败。
如果提示talebook:tornado-8000: ERROR(spawn error)
,那么说明环境没配置正确。 请打开日志文件/data/log/talebook.log
查看原因,重点查看最后一次出现Traceback报错,关注其中Traceback (most recent call last)
提示的错误原因。
网站能打开,但是提示500: internal server error
这种情况,一般是服务运行时出现异常,常见原因有目录权限没有配置正常、数据库没创建好、或者触发了某个代码BUG。
请打开日志文件/data/log/talebook.log
查看原因,重点查看最后一次出现Traceback报错,关注其中Traceback (most recent call last)
提示的错误原因,并提issue联系开发者排查。
「静读天下」APP里访问书库会失败,怎么办?
这是因为静读天下APP不支持Cookie,导致登录会失败。在最新版系统中(v2.0.0-87-gf6d8f06)已经调整程序逻辑,可以无需登录就正常浏览,仅在下载时检测权限。为了避免弹出登录提示,请配置:
- 关闭「私人图书馆」模式。
- 打开「允许任意下载」(访客无需注册或登录)