Metadata-Version: 2.4
Name: calibreweb
Version: 0.6.26
Summary: Web app for browsing, reading and downloading eBooks stored in a Calibre database.
Author-email: "@OzzieIsaacs" <Ozzie.Fernandez.Isaacs@googlemail.com>
Maintainer: @OzzieIsaacs
License: GPLv3+
Project-URL: Homepage, https://github.com/janeczku/calibre-web
Project-URL: Bug Tracker, https://github.com/janeczku/calibre-web/issues
Project-URL: Release Management, https://github.com/janeczku/calibre-web/releases
Project-URL: Documentation, https://github.com/janeczku/calibre-web/wiki
Project-URL: Source Code, https://github.com/janeczku/calibre-web
Keywords: calibre,calibre-web,library
Classifier: Development Status :: 5 - Production/Stable
Classifier: License :: OSI Approved :: GNU Affero General Public License v3
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Operating System :: OS Independent
Requires-Python: >=3.6
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: APScheduler<3.12.0,>=3.6.3
Requires-Dist: Babel<3.0,>=1.3
Requires-Dist: Flask-Babel<4.1.0,>=3.0.0
Requires-Dist: Flask-Principal<0.5.1,>=0.3.2
Requires-Dist: Flask<3.2.0,>=1.0.2
Requires-Dist: iso-639<0.5.0,>=0.4.5; python_version < "3.12"
Requires-Dist: pycountry<25.0.0,>=20.0.0; python_version >= "3.12"
Requires-Dist: PyPDF<6.5.0,>=6.1.3
Requires-Dist: pytz>=2016.10
Requires-Dist: requests<2.33.0,>=2.32.0
Requires-Dist: SQLAlchemy<2.1.0,>=1.3.0
Requires-Dist: tornado<6.6,>=6.4.2
Requires-Dist: Wand<0.7.0,>=0.4.4
Requires-Dist: unidecode<1.4.0,>=0.04.19
Requires-Dist: lxml<5.4.0,>=4.9.1
Requires-Dist: flask-wtf<1.3.0,>=0.14.2
Requires-Dist: chardet<5.3.0,>=3.0.0
Requires-Dist: netifaces-plus<0.13.0,>=0.12.0
Requires-Dist: urllib3<3.0,>=1.22
Requires-Dist: Flask-Limiter<3.13.0,>=2.3.0
Requires-Dist: regex<2025.3.20,>=2022.3.2
Requires-Dist: bleach<6.3.0,>=6.0.0
Requires-Dist: python-magic<0.5.0,>=0.4.27
Requires-Dist: python-magic-bin<0.5.0,>=0.4.0; sys_platform == "win32"
Requires-Dist: flask-httpAuth<5.0.0,>=4.4.0
Requires-Dist: cryptography<45.0.0,>=39.0.0
Requires-Dist: certifi<2025.8.24,>=2024.7.4
Provides-Extra: gdrive
Requires-Dist: google-api-python-client<2.200.0,>=2.73.00; extra == "gdrive"
Requires-Dist: gevent<24.12.0,>20.6.0; extra == "gdrive"
Requires-Dist: greenlet<3.3.0,>=0.4.17; extra == "gdrive"
Requires-Dist: httplib2<0.23.0,>=0.9.2; extra == "gdrive"
Requires-Dist: oauth2client<4.1.4,>=4.0.0; extra == "gdrive"
Requires-Dist: uritemplate<4.3.0,>=3.0.0; extra == "gdrive"
Requires-Dist: pyasn1-modules<0.7.0,>=0.0.8; extra == "gdrive"
Requires-Dist: pyasn1<0.7.0,>=0.1.9; extra == "gdrive"
Requires-Dist: PyDrive2<1.22.0,>=1.15.0; extra == "gdrive"
Requires-Dist: PyYAML<6.1,>=3.12; extra == "gdrive"
Requires-Dist: rsa<4.10.0,>=3.4.2; extra == "gdrive"
Provides-Extra: gmail
Requires-Dist: google-auth-oauthlib<1.3.0,>=1.0.0; extra == "gmail"
Requires-Dist: google-api-python-client<2.200.0,>=2.73.00; extra == "gmail"
Provides-Extra: goodreads
Requires-Dist: goodreads<0.4.0,>=0.3.2; extra == "goodreads"
Requires-Dist: python-Levenshtein<0.28.0,>=0.12.0; extra == "goodreads"
Provides-Extra: ldap
Requires-Dist: python-ldap<3.5.0,>=3.0.0; extra == "ldap"
Requires-Dist: Flask-SimpleLDAP<2.1.0,>=1.4.0; extra == "ldap"
Provides-Extra: oauth
Requires-Dist: Flask-Dance<7.2.0,>=2.0.0; extra == "oauth"
Requires-Dist: SQLAlchemy-Utils<0.42.0,>=0.33.5; extra == "oauth"
Provides-Extra: metadata
Requires-Dist: rarfile<5.0,>=3.2; extra == "metadata"
Requires-Dist: scholarly<1.8,>=1.2.0; extra == "metadata"
Requires-Dist: markdown2<2.6.0,>=2.0.0; extra == "metadata"
Requires-Dist: html2text<2025.2.26,>=2020.1.16; extra == "metadata"
Requires-Dist: python-dateutil<2.10.0,>=2.1; extra == "metadata"
Requires-Dist: beautifulsoup4<4.14.0,>=4.0.1; extra == "metadata"
Requires-Dist: faust-cchardet<2.1.20,>=2.1.18; extra == "metadata"
Requires-Dist: py7zr<0.21.0,>=0.15.0; extra == "metadata"
Requires-Dist: mutagen<1.50.0,>=1.40.0; extra == "metadata"
Requires-Dist: pycountry<25.0.0,>=20.0.0; extra == "metadata"
Provides-Extra: comics
Requires-Dist: natsort<8.5.0,>=2.2.0; extra == "comics"
Requires-Dist: comicapi<3.3.0,>=2.2.0; extra == "comics"
Provides-Extra: kobo
Requires-Dist: jsonschema<4.30.0,>=3.2.0; extra == "kobo"
Dynamic: license-file

# Calibre-Web

Calibre-Web is a web app that offers a clean and intuitive interface for browsing, reading, and downloading eBooks using a valid [Calibre](https://calibre-ebook.com) database.

[![License](https://img.shields.io/github/license/janeczku/calibre-web?style=flat-square)](https://github.com/janeczku/calibre-web/blob/master/LICENSE)
![Commit Activity](https://img.shields.io/github/commit-activity/w/janeczku/calibre-web?logo=github&style=flat-square&label=commits)
[![All Releases](https://img.shields.io/github/downloads/janeczku/calibre-web/total?logo=github&style=flat-square)](https://github.com/janeczku/calibre-web/releases)
[![PyPI](https://img.shields.io/pypi/v/calibreweb?logo=pypi&logoColor=fff&style=flat-square)](https://pypi.org/project/calibreweb/)
[![PyPI - Downloads](https://img.shields.io/pypi/dm/calibreweb?logo=pypi&logoColor=fff&style=flat-square)](https://pypi.org/project/calibreweb/)
[![Discord](https://img.shields.io/discord/838810113564344381?label=Discord&logo=discord&style=flat-square)](https://discord.gg/h2VsJ2NEfB)

<details>
<summary><strong>Table of Contents</strong> (click to expand)</summary>

1. [About](#calibre-web)
2. [Features](#features)
3. [Installation](#installation)
   - [Installation via pip (recommended)](#installation-via-pip-recommended)
   - [Quick start](#quick-start)
   - [Requirements](#requirements)
4. [Docker Images](#docker-images)
5. [Troubleshooting](#troubleshooting)
6. [Contributor Recognition](#contributor-recognition)
7. [Contact](#contact)
8. [Contributing to Calibre-Web](#contributing-to-calibre-web)

</details>

*This software is a fork of [library](https://github.com/mutschler/calibreserver) and licensed under the GPL v3 License.*

![Main screen](https://github.com/janeczku/calibre-web/wiki/images/main_screen.png)

## Features

- Modern and responsive Bootstrap 3 HTML5 interface
- Full graphical setup
- Comprehensive user management with fine-grained per-user permissions
- Admin interface
- Multilingual user interface supporting 20+ languages ([supported languages](https://github.com/janeczku/calibre-web/wiki/Translation-Status))
- OPDS feed for eBook reader apps
- Advanced search and filtering options
- Custom book collection (shelves) creation
- eBook metadata editing and deletion support
- Metadata download from various sources (extensible via plugins)
- eBook conversion through Calibre binaries
- eBook download restriction to logged-in users
- Public user registration support
- Send eBooks to E-Readers with a single click
- Sync Kobo devices with your Calibre library
- In-browser eBook reading support for multiple formats
- Upload new books in various formats, including audio formats
- Calibre Custom Columns support
- Content hiding based on categories and Custom Column content per user
- Self-update capability
- "Magic Link" login for easy access on eReaders
- LDAP, Google/GitHub OAuth, and proxy authentication support

## Installation

### Installation via pip (recommended)

1. **Create a virtual environment**: It’s essential to isolate your Calibre-Web installation to avoid dependency conflicts. You can create a virtual environment by running:
   ```
   python3 -m venv calibre-web-env
   ```
2. **Activate the virtual environment**:
   ```
   source calibre-web-env/bin/activate
   ```
3. **Install Calibre-Web**: Use pip to install the application:
   ```
   pip install calibreweb
   ```
4. **Install optional features**: For additional functionality, you may need to install optional features. Refer to [this page](https://github.com/janeczku/calibre-web/wiki/Dependencies-in-Calibre-Web-Linux-and-Windows) for details on what can be installed.
5. **Start Calibre-Web**: After installation, you can start the application with:
   ```
   cps
   ```

*Note: Users of Raspberry Pi OS may encounter installation issues. If you do, try upgrading pip and/or installing cargo as follows:*
   ```
   ./venv/bin/python3 -m pip install --upgrade pip
   sudo apt install cargo
   ```

### Important Links
- For additional installation examples, check the following:
   - [Manual installation](https://github.com/janeczku/calibre-web/wiki/Manual-installation)
   - [Linux Mint installation](https://github.com/janeczku/calibre-web/wiki/How-To:-Install-Calibre-Web-in-Linux-Mint-19-or-20)
   - [Cloud Provider setup](https://github.com/janeczku/calibre-web/wiki/How-To:-Install-Calibre-Web-on-a-Cloud-Provider)

## Quick Start

1. **Access Calibre-Web**: Open your browser and navigate to:
   ```
   http://localhost:8083
   ```
   or for the OPDS catalog:
   ```
   http://localhost:8083/opds
   ```
2. **Log in**: Use the default admin credentials:
   - **Username:** admin
   - **Password:** admin123
3. **Database Setup**: If you do not have a Calibre database, download a sample from:
   ```
   https://github.com/janeczku/calibre-web/raw/master/library/metadata.db
   ```
   Move it out of the Calibre-Web folder to avoid overwriting during updates.
4. **Configure Calibre Database**: In the admin interface, set the `Location of Calibre database` to the path of the folder containing your Calibre library (where `metadata.db` is located) and click "Save".
5. **Google Drive Integration**: For hosting your Calibre library on Google Drive, refer to the [Google Drive integration guide](https://github.com/janeczku/calibre-web/wiki/G-Drive-Setup#using-google-drive-integration).
6. **Admin Configuration**: Configure your instance via the admin page, referring to the [Basic Configuration](https://github.com/janeczku/calibre-web/wiki/Configuration#basic-configuration) and [UI Configuration](https://github.com/janeczku/calibre-web/wiki/Configuration#ui-configuration) guides.

## Requirements

- **Python Version**: Ensure you have Python 3.7 or newer.
- **Imagemagick**: Required for cover extraction from EPUBs. Windows users may also need to install [Ghostscript](https://ghostscript.com/releases/gsdnld.html) for PDF cover extraction.
- **Optional Tools**:
   - **Calibre desktop program**: Recommended for on-the-fly conversion and metadata editing. Set the path to Calibre’s converter tool on the setup page.
   - **Kepubify tool**: Needed for Kobo device support. Download the tool and place the binary in `/opt/kepubify` on Linux or `C:\Program Files\kepubify` on Windows.

## Docker Images

Pre-built Docker images are available:

### **LinuxServer - x64, aarch64**
- **Docker Hub**: [linuxserver/calibre-web](https://hub.docker.com/r/linuxserver/calibre-web)
- **GitHub**: [linuxserver/docker-calibre-web](https://github.com/linuxserver/docker-calibre-web)
- **Optional Calibre layer**: [linuxserver/docker-mods](https://github.com/linuxserver/docker-mods/tree/universal-calibre)

To include the Calibre `ebook-convert` binary (x64 only), add the environment variable:
``` 
DOCKER_MODS=linuxserver/mods:universal-calibre
```
in your Docker run/compose file. Omit this variable for a lightweight image.

- **Paths Configuration**:
   - Set **Path to Calibre Binaries** to `/usr/bin`.
   - Set **Path to Unrar** to `/usr/bin/unrar`.

## Troubleshooting

- **Common Issues**: 
   - If you experience issues starting the application, check the log files located in the `logs` directory for error messages.
   - If eBooks fail to load, verify that the `Location of Calibre database` is correctly set and that the database file is accessible.
   - You need to enable uploads under `Basic settings` for this option to appear

- **Configuration Errors**: Ensure that your Calibre database is compatible and properly formatted. Refer to the Calibre documentation for guidance on maintaining the database.

- **Performance Problems**: 
   - If the application is slow, consider increasing the allocated resources (CPU/RAM) to your server or optimizing the Calibre database by removing duplicates and unnecessary entries.
   - Regularly clear the cache in your web browser to improve loading times.

- **User Management Issues**: If users are unable to log in or register, check the user permission settings in the admin interface. Ensure that registration is enabled and that users are being assigned appropriate roles.

- **Support Resources**: For additional help, consider visiting the [FAQ section](https://github.com/janeczku/calibre-web/wiki/FAQ) of the wiki or posting your questions in the [Discord community](https://discord.gg/h2VsJ2NEfB).

## Contributor Recognition

We would like to thank all the [contributors](https://github.com/janeczku/calibre-web/graphs/contributors) and maintainers of Calibre-Web for their valuable input and dedication to the project. Your contributions are greatly appreciated.

## Contact

Join us on [Discord](https://discord.gg/h2VsJ2NEfB)

For more information, How To's, and FAQs, please visit the [Wiki](https://github.com/janeczku/calibre-web/wiki)

## Contributing to Calibre-Web

To contribute, please check our [Contributing Guidelines](https://github.com/janeczku/calibre-web/blob/master/CONTRIBUTING.md). We welcome issues, feature requests, and pull requests from the community.

### Reporting Bugs

If you encounter bugs or issues, please report them in the [issues section](https://github.com/janeczku/calibre-web/issues) of the repository. Be sure to include detailed information about your setup and the problem encountered.

### Feature Requests

We welcome suggestions for new features. Please create a new issue in the repository to discuss your ideas.

## Additional Resources

- **Documentation**: Comprehensive documentation is available on the [Calibre-Web wiki](https://github.com/janeczku/calibre-web/wiki).
- **Community Contributions**: Explore the [community contributions](https://github.com/janeczku/calibre-web/pulls) to see ongoing work and how you can get involved.

---

Thank you for using Calibre-Web! We hope you enjoy managing your eBook library with our tool.
