2015-10-12 03:37:10 +02:00
##About
2016-04-27 17:37:19 +02:00
Calibre Web is a web app providing a clean interface for browsing, reading and downloading eBooks using an existing [Calibre ](https://calibre-ebook.com ) database.
2015-10-12 03:37:10 +02:00
2016-04-27 17:29:57 +02:00
*This software is a fork of [library ](https://github.com/mutschler/calibreserver ) and licensed under the GPL v3 License.*
2016-03-26 20:48:45 +02:00
2015-10-12 03:42:36 +02:00
![screenshot ](https://raw.githubusercontent.com/janeczku/docker-calibre-web/master/screenshot.png )
2015-10-12 03:37:10 +02:00
##Features
- Bootstrap 3 HTML5 interface
2017-01-28 21:29:04 +02:00
- full graphical setup
2015-10-12 03:42:36 +02:00
- User management
2015-10-12 03:37:10 +02:00
- Admin interface
2017-02-15 19:09:17 +02:00
- User Interface in english, french, german, polish, simplified chinese, spanish
2016-12-28 16:51:58 +02:00
- OPDS feed for eBook reader apps
2015-10-12 03:37:10 +02:00
- Filter and search by titles, authors, tags, series and language
- Create custom book collection (shelves)
- Support for editing eBook metadata
2015-10-12 03:42:36 +02:00
- Support for converting eBooks from EPUB to Kindle format (mobi/azw)
2015-10-12 03:37:10 +02:00
- Restrict eBook download to logged-in users
2016-03-26 20:48:45 +02:00
- Support for public user registration
2015-10-12 03:42:36 +02:00
- Send eBooks to Kindle devices with the click of a button
2016-12-28 16:51:58 +02:00
- Support for reading eBooks directly in the browser (.txt, .epub, .pdf)
2017-01-14 21:31:01 +02:00
- Upload new books in PDF, epub, fb2 format
2016-04-27 17:37:19 +02:00
- Support for Calibre custom columns
2016-04-29 22:30:33 +02:00
- Fine grained per-user permissions
2017-02-03 11:51:58 +02:00
- Self update capability
2015-10-12 03:42:36 +02:00
## Quick start
2017-01-28 21:29:04 +02:00
1. Execute the command: `python cps.py`
2. Point your browser to `http://localhost:8083` or `http://localhost:8083/opds` for the OPDS catalog
3. Set `Location of Calibre database` to the path of the folder where your Calibre library (metadata.db) lives, push "submit" button
4. Go to Login page
2015-10-12 03:37:10 +02:00
**Default admin login:**
*Username:* admin
2015-10-12 03:42:36 +02:00
*Password:* admin123
2016-04-29 22:30:33 +02:00
## Runtime Configuration Options
2017-01-28 21:29:04 +02:00
The configuration can be changed as admin in the admin panel under "Configuration"
Server Port:
Changes the port calibre-web is listening, changes take effect after pressing submit button
2017-02-03 11:51:58 +02:00
2017-01-28 21:29:04 +02:00
Enable public registration:
2017-02-03 11:51:58 +02:00
Tick to enable public user registration.
2017-01-28 21:29:04 +02:00
Enable anonymous browsing:
2017-02-03 11:51:58 +02:00
Tick to allow not logged in users to browse the catalog, anonymous user permissions can be set as admin ("Guest" user)
2017-01-28 21:29:04 +02:00
Enable uploading:
Tick to enable uploading of PDF, epub, FB2. This requires the imagemagick library to be installed.
2016-04-29 22:30:33 +02:00
2015-10-12 03:42:36 +02:00
## Requirements
2015-10-12 04:37:39 +02:00
Python 2.7+
Optionally, to enable on-the-fly conversion from EPUB to MOBI when using the send-to-kindle feature:
2016-04-27 17:45:04 +02:00
[Download ](http://www.amazon.com/gp/feature.html?docId=1000765211 ) Amazon's KindleGen tool for your platform and place the binary named as `kindlegen` in the `vendor` folder.
2016-04-27 17:29:57 +02:00
## Docker image
2016-10-08 07:58:47 +02:00
Calibre Web can be run as Docker container. The latest image is available on [Docker Hub ](https://registry.hub.docker.com/u/janeczku/calibre-web/ ).
## 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 {
2017-01-14 21:31:01 +02:00
location /calibre-web {
2016-10-08 07:58:47 +02:00
proxy_bind $server_addr;
2017-01-02 19:54:04 +02:00
proxy_pass http://127.0.0.1:8083;
2016-10-08 07:58:47 +02:00
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Scheme $scheme;
2017-01-14 21:31:01 +02:00
proxy_set_header X-Script-Name /calibre-web;
2016-10-08 07:58:47 +02:00
}
}
}
```
Apache 2.4 configuration for a local server listening on port 443, mapping calibre web to /calibre-web:
2017-01-08 15:46:30 +02:00
The following modules have to be activated: headers, proxy, rewrite.
2016-10-08 07:58:47 +02:00
```
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"
2017-01-08 15:46:30 +02:00
< Location " / calibre-web " >
RequestHeader set X-SCRIPT-NAME /calibre-web
RequestHeader set X-SCHEME https
ProxyPass http://localhost:8083/
ProxyPassReverse http://localhost:8083/
2016-10-08 07:58:47 +02:00
< / Location >
< / VirtualHost >
```
2016-11-19 15:42:47 +02:00
2016-11-20 22:27:59 +02:00
## Start calibre-web as service under Linux
2016-11-19 15:42:47 +02:00
Create a file "cps.service" as root in the folder /etc/systemd/system with the following content:
```[Unit]
Description=Calibre-web
[Service]
Type=simple
User=[Username]
ExecStart=[path to python] [/PATH/TO/cps.py]
[Install]
WantedBy=multi-user.target
```
Replace the user and ExecStart with your user and foldernames.
`sudo systemctl enable cps.service`
enables the service.