📚 Web app for browsing, reading and downloading eBooks stored in a Calibre database
Go to file
OzzieIsaacs bbf6d9b026 Translation of UI (german and english)
Bugfix for feeds
    - removed categories related and up
    - load new books now working
    - category random now working
login page is free of non accessible elements
boolean custom column is vivible in UI
books with only with certain languages can be shown
book shelfs can be deleted from UI
Anonymous user view is more resticted
Added browse of series in sidebar
Dependencys in vendor folder are updated to newer versions (licencs files are now present)
Bugfix editing Authors names
Made upload on windows working
2016-11-09 19:24:33 +01:00
cps Translation of UI (german and english) 2016-11-09 19:24:33 +01:00
vendor Translation of UI (german and english) 2016-11-09 19:24:33 +01:00
.gitignore Merge branch 'master' of https://github.com/wuqi/calibre-web 2016-10-24 19:04:16 +02:00
config.ini.example Add ANON_BROWSE configuration option 2016-04-29 22:36:36 +02:00
cps.py Merge branch 'master' of https://github.com/wuqi/calibre-web 2016-10-24 19:04:16 +02:00
LICENSE Add GPL v3 License 2016-04-27 17:29:57 +02:00
messages.pot Translation of UI (german and english) 2016-11-09 19:24:33 +01:00
readme.md Add reverse proxy configuration infos 2016-10-08 07:58:47 +02:00

##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.

screenshot

##Features

  • Bootstrap 3 HTML5 interface
  • User management
  • Admin interface
  • OPDS feed for eBook reader apps
  • Filter and search by titles, authors, tags, series and language
  • Create custom book collection (shelves)
  • Support for editing eBook metadata
  • Support for converting eBooks from EPUB to Kindle format (mobi/azw)
  • Restrict eBook download to logged-in users
  • Support for public user registration
  • Send eBooks to Kindle devices with the click of a button
  • Support for reading eBooks directly in the browser
  • Upload new books in PDF format
  • Support for Calibre custom columns
  • Fine grained per-user permissions

Quick start

  1. Rename config.ini.example to config.ini and set DB_ROOT to the path of the folder where your Calibre library (metadata.db) lives
  2. Execute the command: python cps.py
  3. Point your browser to http://localhost:8083 or http://localhost:8083/feed for the OPDS catalog

Default admin login:
Username: admin
Password: admin123

Runtime Configuration Options

PUBLIC_REG
Set to 1 to enable public user registration.
ANON_BROWSE
Set to 1 to allow not logged in users to browse the catalog.
UPLOADING
Set to 1 to enable PDF uploading. This requires the imagemagick library to be installed.

Requirements

Python 2.7+

Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the send-to-kindle feature:

Download Amazon's KindleGen tool for your platform and place the binary named as kindlegen in the vendor folder.

Docker image

Calibre Web can be run as Docker container. The latest image is available on Docker Hub.

Reverse Proxy

Reverse proxy configuration examples for apache and nginx to use calibre-web:

nginx configuration for a local server listening on port 8080, mapping calibre web to /calibre:

http {
    upstream calibre {
        server  127.0.0.1:8083;
    }
    server {
            location /calibre {
                proxy_bind              $server_addr;
                proxy_pass              http://127.0.0.1:8080;
                proxy_set_header        Host            $http_host;
                proxy_set_header        X-Forwarded-For $proxy_add_x_forwarded_for;
                proxy_set_header        X-Scheme        $scheme;
                proxy_set_header        X-Script-Name   /calibre;
        }
    }
}

Apache 2.4 configuration for a local server listening on port 443, mapping calibre web to /calibre-web:

The following modules have to be activated: headers, proxy, proxy_html, proxy_http, rewrite, xml2enc.

Listen 443

<VirtualHost *:443>
    SSLEngine on
    SSLProxyEngine on
    SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
    SSLCertificateFile "C:\Apache24\conf\ssl\test.crt"
    SSLCertificateKeyFile "C:\Apache24\conf\ssl\test.key"
    
    <Location /calibre-web>       
           ProxyHTMLEnable On
           ProxyPass            http://127.0.0.1:8083/
           ProxyPassReverse     http://127.0.0.1:8083/  
           Header edit Location "^http://(.*?)/" "https://$1/calibre-web/"
           ProxyHTMLURLMap      /  /calibre-web/       
    </Location>
</VirtualHost>