TaleBook 是一个基于 Calibre 的个人图书管理系统,让用户可以更方便的管理和阅读电子书。
Calibre 自带网页不够友好,TaleBook 基于 Vue 开发了新界面,支持电脑和手机访问。TaleBook开发了多用户功能,曾支持豆瓣、QQ、微博、Github 等社交账号登录(豆瓣登录已废弃)。借助 epub.js 库实现网页在线阅读电子书,章评功能还在开发中。支持批量扫描导入书籍,方便用户快速添加大量图书。可将书籍推送到 Kindle,满足用户在移动设备上阅读的需求。支持 OPDS 协议,用户能用 KyBooks 等 APP 便捷读书。支持一键安装,通过网页版初始化配置就能轻松启动网站。优化大书库文件存放路径,可按字母分类或保持中文文件名。能从百度百科、豆瓣搜索并导入书籍基础信息,减少手动录入工作。设置访问码后,只有知道访问码的人才能进入网站,适合小圈子分享。
推荐使用 Docker 部署,操作简单。
1、下载配置文件:wget https://raw.githubusercontent.com/talebook/talebook/master/docker - compose.yml
2、启动服务:docker - compose - f docker - compose.yml up - d
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
前端基于 Vue(nuxtjs + vuetify),开发者需安装 nodejs 并熟悉 Vue 框架。
操作命令:
$ cd talebook/app/
$ npm install
$ npm run dev
调试后台时,可配置 NGINX 转发后台 URL 到后台 server,示例配置如下:
server {
listen 80;
server_name mydev.com;
index index.php index.html index.htm;
root /data/code/talebook/app/dist;
location ~ ^/(api|get|read|auth|opds)/ {
proxy_pass http://127.0.0.1:8082;
proxy_set_header Host $http_host;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header X - Scheme $scheme;
proxy_redirect off;
}
location ~ / {
proxy_pass http://127.0.0.1:8081;
proxy_set_header Host $http_host;
proxy_set_header X - Real - IP $remote_addr;
proxy_set_header X - Scheme $scheme;
proxy_redirect off;
}
}
推荐用 Docker 容器作为开发环境,将本地 Python 代码目录挂载到容器内,修改代码后容器 server 会自动重启。
参考 docker - compose.yml 配置:
version: "2.4"
services:
dev:
image: talebook/talebook
volumes:
- /data/dev:/data
- /data/code/talebook/webserver:/var/www/talebook/webserver
ports:
- "8082:80"
depends_on:
- douban - rs - api
douban - rs - api:
image: ghcr.io/cxfksword/douban - api - rs
1、主要架构和依赖:
• app/:前端 Web 代码,依赖 nuxtjs + vuetifyjs -> vuejs -> nodejs
• webserver/:后台服务代码,依赖 tornado -> calibre -> PyQt5
• tests/:后台单元测试代码
• conf/:外围程序配置文件(nginx 和 supervisor)
• docker/:docker 镜像启动脚本及预置书籍
2、创建目录:
mkdir - p / data/log/nginx/
mkdir - p / var/www/talebook/
mkdir - p / data/books/{library,extract,upload,convert,progress,settings}
1、安装 calibre 基础环境:
apt - get install - y tzdata
apt - get install - y -- no - install - recommends python3 - pip unzip supervisor sqlite3 git nginx python - setuptools curl
apt - get install - y calibre
2、安装 Python 库依赖:
pip3 install - r / var/www/talebook/requirements.txt
pip3 install flake8 pytest
3、安装 nodejs:
curl - fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt - get install - y nodejs
cd / var/www/talebook/app/
npm install
npm build
1、创建书库:
calibredb add -- library - path = / data/books/library/ - r / var/www/talebook/docker/book/
2、创建数据库:
python / var/www/talebook/server.py -- syncdb
touch / data/books/settings/auto.py
1、复制配置文件:
cd / var/www/talebook/
copy conf/nginx/talebook.conf / etc/nginx/conf.d/
copy conf/supervisor/talebook.conf / etc/supervisor/conf.d/
2、启动服务:
service nginx restart
service supervisor restart
TaleBook 为用户提供了一个非常好用的个人图书管理方案,无论是日常使用还是二次开发,都有相对完善的文档和支持,感兴趣的开发者可以深入了解和参与项目建设。