中文 | English
A better online books library management website built on Calibre + Vue
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
- 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-basefor faster builds.
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.
The Compose file uses four persistent roots: data/ for application state, imports/ for source files, library/ for the managed Calibre library, and audiobooks/ for generated audio assets. Back up all four. To use other locations, set absolute paths in a colocated .env file:
TALEBOOK_DATA_DIR=/path/to/talebook-data
TALEBOOK_IMPORTS_DIR=/path/to/import-source
TALEBOOK_LIBRARY_DIR=/path/to/calibre-library
TALEBOOK_AUDIOBOOKS_DIR=/path/to/audiobooksThis is a breaking storage-layout change. A deployment that still contains /data/books is rejected and is never migrated automatically. Stop the old container and back it up first. Move books/library, books/imports, and books/audiobooks to their new roots; move the business database and state directories to the flat data/ root; and move upload, conversion, and extraction workspaces under data/work/ before starting the new image.
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
mkdir -p "$PWD/data" && docker run -d --name talebook -p 8080:80 -v "$PWD/data:/data" talebook/talebook
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!
