91b9370a21
# Conflicts: # cps/static/css/libs/bootstrap-table.min.css # cps/static/js/libs/bootstrap-table/bootstrap-table-editable.min.js # cps/static/js/libs/bootstrap-table/bootstrap-table.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-af-ZA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ar-SA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-bg-BG.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ca-ES.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-cs-CZ.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-da-DK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-de-DE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-el-GR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-en-US.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-AR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-CL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-CR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-ES.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-MX.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-NI.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-es-SP.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-et-EE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-eu-EU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fa-IR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fi-FI.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-BE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-CH.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-FR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-fr-LU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-he-IL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-hr-HR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-hu-HU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-id-ID.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-it-IT.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ja-JP.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ka-GE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ko-KR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ms-MY.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nb-NO.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nl-BE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-nl-NL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pl-PL.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pt-BR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-pt-PT.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ro-RO.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ru-RU.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sk-SK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sr-Cyrl-RS.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sr-Latn-RS.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-sv-SE.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-th-TH.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-tr-TR.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-uk-UA.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-ur-PK.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-uz-Latn-UZ.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-vi-VN.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-zh-CN.min.js # cps/static/js/libs/bootstrap-table/locale/bootstrap-table-zh-TW.min.js |
||
---|---|---|
.github/ISSUE_TEMPLATE | ||
cps | ||
test | ||
.editorconfig | ||
.eslintrc | ||
.gitattributes | ||
.gitignore | ||
babel.cfg | ||
CONTRIBUTING.md | ||
cps.py | ||
LICENSE | ||
MANIFEST.in | ||
messages.pot | ||
optional-requirements.txt | ||
README.md | ||
requirements.txt | ||
setup.cfg | ||
setup.py |
About
Calibre-Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing Calibre database.
This software is a fork of library and licensed under the GPL v3 License.
Features
- Bootstrap 3 HTML5 interface
- full graphical setup
- User management with fine-grained per-user permissions
- Admin interface
- User Interface in brazilian, czech, dutch, english, finnish, french, german, greek, hungarian, italian, japanese, khmer, polish, russian, simplified chinese, spanish, swedish, turkish, ukrainian
- OPDS feed for eBook reader apps
- Filter and search by titles, authors, tags, series and language
- Create a custom book collection (shelves)
- Support for editing eBook metadata and deleting eBooks from Calibre library
- Support for converting eBooks through Calibre binaries
- Restrict eBook download to logged-in users
- Support for public user registration
- Send eBooks to Kindle devices with the click of a button
- Sync your Kobo devices through Calibre-Web with your Calibre library
- Support for reading eBooks directly in the browser (.txt, .epub, .pdf, .cbr, .cbt, .cbz, .djvu)
- Upload new books in many formats, including audio formats (.mp3, .m4a, .m4b)
- Support for Calibre Custom Columns
- Ability to hide content based on categories and Custom Column content per user
- Self-update capability
- "Magic Link" login to make it easy to log on eReaders
- Login via LDAP, google/github oauth and via proxy authentication
Quick start
- Install dependencies by running
pip3 install --target vendor -r requirements.txt
(python3.x). Alternativly set up a python virtual environment. - Execute the command:
python3 cps.py
(ornohup python3 cps.py
- recommended if you want to exit the terminal window) - Point your browser to
http://localhost:8083
orhttp://localhost:8083/opds
for the OPDS catalog - Set
Location of Calibre database
to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
Optionally a Google Drive can be used to host the calibre library -> Using Google Drive integration - Go to Login page
Default admin login:
Username: admin
Password: admin123
Issues with Ubuntu:
Please note that running the above install command can fail on some versions of Ubuntu, saying "can't combine user with prefix"
. This is a known bug and can be remedied by using the command pip install --system --target vendor -r requirements.txt
instead.
Requirements
python 3.x+
Optionally, to enable on-the-fly conversion from one ebook format to another when using the send-to-kindle feature, or during editing of ebooks metadata:
Download and install the Calibre desktop program for your platform and enter the folder including program name (normally /opt/calibre/ebook-convert, or C:\Program Files\calibre\ebook-convert.exe) in the field "calibre's converter tool" on the setup page.
Download Kepubify tool for your platform and place the binary starting with kepubify
in Linux: \opt\kepubify
Windows: C:\Program Files\kepubify
.
Docker Images
Pre-built Docker images are available in these Docker Hub repositories:
Technosoft2000 - x64
-
Docker Hub - https://hub.docker.com/r/technosoft2000/calibre-web
-
Github - https://github.com/Technosoft2000/docker-calibre-web
Includes the Calibre
ebook-convert
binary.- The "path to convertertool" should be set to
/opt/calibre/ebook-convert
- The "path to convertertool" should be set to
LinuxServer - x64, armhf, aarch64
-
Docker Hub - https://hub.docker.com/r/linuxserver/calibre-web
-
Github - (Optional Calibre layer) - https://github.com/linuxserver/docker-calibre-web/tree/calibre
This image has the option to pull in an extra docker manifest layer to include the Calibre
ebook-convert
binary. Just include the environmental variableDOCKER_MODS=linuxserver/calibre-web:calibre
in your docker run/docker compose file. (x64 only)If you do not need this functionality then this can be omitted, keeping the image as lightweight as possible.
Both the Calibre-Web and Calibre-Mod images are rebuilt automatically on new releases of Calibre-Web and Calibre respectively, and on updates to any included base image packages on a weekly basis if required.
- The "path to convertertool" should be set to
/usr/bin/ebook-convert
- The "path to unrar" should be set to
/usr/bin/unrar
- The "path to convertertool" should be set to
Wiki
For further information, How To's and FAQ please check the Wiki
Contributing to Calibre-Web
Please have a look at our Contributing Guidelines