MCPcopy
hub / github.com/talebook/talebook

github.com/talebook/talebook @v26.06.29 sqlite

repository ↗ · DeepWiki ↗ · release v26.06.29 ↗
7,600 symbols 26,308 edges 236 files 960 documented · 13%
README

GitHub License GitHub commit activity Tests Docker Build Docker Pulls

Tale Book: My Calibre WebServer

中文 | English

A better online books library management website built on Calibre + Vue

A Simple and User-Friendly Personal Book Management System

This is a simple personal book management system based on Calibre, supporting online reading. Main features: * Beautiful interface: A modern interface rebuilt with Nuxt 4 + Vue 3 + Vuetify, supporting both PC and mobile browsing, with multi-language (Chinese/English) support and light/dark theme switching; * Multi-user support: Multi-user functionality with login via social platforms like ~~Douban~~ (deprecated), QQ, Weibo, Github, etc.; full user management and guest permission control, bcrypt password storage, image captcha and GeeTest verification; * Online reading support: Built-in candle-reader for reading e-books in the browser, with automatic conversion for non-EPUB formats; * Online library with book sources: Import Legado-style book sources to search and read web novels online, and save them to the library as txt/epub with one click; book source management UI with batch import, enable/disable and validity checks; * Batch scan and import of books, with automatic metadata filling, recycle bin and batch deletion; * Email push support: Manage multiple Kindle and other receiving devices, one-click push with automatic batch format conversion; * OPDS support: Use apps like KyBooks for convenient reading; also browse and import books from other OPDS libraries; * One-click installation, web-based initial configuration, easy website setup, with online update checking; * Optimized file storage path for large libraries, can be categorized by alphabet or keep Chinese filenames; * Quick update of book information: Search and import metadata in parallel from multiple sources (Douban, Baidu Encyclopedia, Xinhua Bookstore, Tomato Novel), with optional AI-powered book information recognition; * Private mode support: Requires access code to enter the website, convenient for small group sharing; individual books can also be marked as private, visible only to yourself;

This project was previously named: calibre-webserver

Highlights of the Past Year

  • Online library & book sources: New Legado-style book source parsing engine — search and read web novels online and save them to the library as txt/epub; book source management UI (batch enable/disable/delete, validity checks, paginated search).
  • Frontend rewrite: Upgraded from Nuxt 2 to Nuxt 4 + Vue 3 + Vuetify 3, full i18n (Chinese/English), light/dark theme switching, redesigned login/signup and book editing pages.
  • AI & multi-source metadata: New AI-powered book information API; metadata sources extended to Douban, Baidu Encyclopedia, Xinhua Bookstore, Tomato Novel and Calibre, queried in parallel.
  • Online reading: Default EPUB reader switched to candle-reader; non-EPUB books are converted automatically before online reading.
  • Push & conversion: New user device management with multi-device push; background batch conversion of Kindle-proprietary formats to EPUB.
  • OPDS import: Add external OPDS sources, browse and batch import books, with failure retry and progress tracking.
  • Security hardening: Automatic password migration from SHA256 to bcrypt; image captcha and GeeTest verification for login/signup/password reset; multiple security fixes (ReDoS, code injection, etc.).
  • Admin enhancements: User management UI, guest upload permission control, recycle bin, batch book deletion, update checking, and a user feedback entry.
  • Infrastructure: Upgraded to Tornado 6.5, switched to uv for Python dependency management, added database migration tooling; Docker base image consolidated into talebook/talebook-base for faster builds.

Docker Docker Pulls

Deployment is relatively simple, it is recommended to use docker, image address: dockerhub

It is recommended to use docker-compose, download the configuration file docker-compose.yml from the repository, and then execute the command to start. If you want to modify the mounted directories or ports, please modify the docker-compose.yml file.

wget https://raw.githubusercontent.com/talebook/talebook/master/docker-compose.yml
docker-compose -f docker-compose.yml  up -d

If using native docker, then execute the command:

docker run -d --name talebook -p <local-port>:80 -v <local-data-directory>:/data talebook/talebook

For example

docker run -d --name talebook -p 8080:80 -v /tmp/demo:/data talebook/talebook

FAQ

For frequently asked questions, please refer to the User Guide. If you can't solve it, please submit an ISSUE.

For manual installation, please refer to the Developer Guide

If you think this project is great, welcome to support the author!

Disclaimer! This project does not maintain any public book library sites. Sites like joyeuse, wenyuange, etc. are built by users. Please do not consult me about related issues, I can't help!

Contributors

Demo

Demo site (password admin/demodemo)

Project demo screenshot below:

Core symbols most depended-on inside this repo

push
called by 921
app/public/static/pdfjs/web/viewer.js
call
called by 805
app/public/static/epubreader/js/epubreader.js
_
called by 499
webserver/i18n.py
on
called by 395
app/public/static/pdfjs/web/viewer.js
get
called by 358
app/public/static/pdfjs/web/viewer.js
get
called by 253
webserver/handlers/user.py
y
called by 208
app/public/static/candle-reader/candle-reader.umd.js
y
called by 208
app/public/static/candle-reader/candle-reader.es.js

Shape

Function 3,604
Method 3,214
Class 679
Route 103

Languages

TypeScript74%
Python26%

Modules by API surface

app/public/static/candle-reader/candle-reader.es.js915 symbols
app/public/static/candle-reader/candle-reader.umd.js913 symbols
app/public/static/candle-reader/js/epub-v0.3.88.js848 symbols
app/public/static/pdfjs/web/viewer.js834 symbols
app/public/static/epubreader/js/libs/epub.min.js539 symbols
app/public/static/readium/lib/Readium.js485 symbols
app/public/static/epubreader/js/epubreader.js197 symbols
app/public/static/epubreader/js/epubreader.min.js172 symbols
tests/test_main.py139 symbols
webserver/handlers/book.py92 symbols
tests/test_booksource_engine.py87 symbols
app/public/static/readium/lib/thirdparty/jquery-1.11.0.js86 symbols

Dependencies from manifests, versioned

@mdi/font7.4.47 · 1×
@nuxt/test-utils3.23.0 · 1×
@nuxtjs/i18n10.2.3 · 1×
@pinia/nuxt0.11.3 · 1×
@pinia/testing1.0.3 · 1×
@playwright/test1.58.0 · 1×
@typescript-eslint/eslint-plugin8.54.0 · 1×
@typescript-eslint/parser8.54.0 · 1×
@vue/eslint-config-typescript14.6.0 · 1×
@vue/test-utils2.4.6 · 1×
eslint9.39.2 · 1×
eslint-config-prettier10.1.8 · 1×

Datastores touched

(mysql)Database · 1 repos
testdbDatabase · 1 repos

For agents

$ claude mcp add talebook \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact