Public | Automated Build

Last pushed: a month ago
Short Description
Web app for browsing, reading and downloading Calibre e-book collections
Full Description

Calibre Web docker image

This image has been deprecated. Please see here for links to alternative Docker images for Calibre Web.

This Dockerfile provides the janeczku/calibre-web image based on CentOS 7, Supervisord, Gunicorn and Nginx reverse proxy.

About Calibre Web

Calibre Web is a Python web app allowing one to browse, download and read the books contained in a Calibre e-book collection.

GitHub project:

https://github.com/janeczku/calibre-web/

Getting Started

You can make your Calibre database available to the container either by mounting the host folder to /calibre or by mounting an existing volume from another container. The latter method comes in handy if you want to sync the Calibre database from a NAS, Dropbox or similar share.

Using a Calibre database folder located on the host

docker run -d --name calibre-web \
-v /path/to/calibre/database/folder:/calibre \
-p 8080:80 janeczku/calibre-web

Using a Calibre database folder located in an existing volume

In this example we are first launching the Docker Dropbox image to sync the Calibre database from a Dropbox account to a volume on the host. Subsequently we can then mount this volume in the Calibre Web container, so that the ebook database is always up-to-date. It is recommended to use a distinct Dropbox account for this purpose as the container will download all data from the linked account by default (Alternatively you can set-up selective sync - see "manage exclusions" below)

Launch the Docker Dropbox container.

docker run -d --restart=always --name=dropbox \
-e DBOX_UID=80 \
-e DBOX_GID=80 \
janeczku/dropbox

Check the logs of the container to get URL to authenticate with your Dropbox account.

docker logs dropbox

Copy and paste the URL in a browser and login to your Dropbox account to associate.

docker logs dropbox

You should see something like this:

"This computer is now linked to Dropbox. Welcome xxxx"

To manage exclusions and check sync status do:

docker exec -t -i dropbox dropbox help

Then start the calibre-web container mounting the volumes from the dropbox container:

docker run -d --name calibre-web \
--volumes-from dropbox \
-p 8080:80 janeczku/calibre-web

The docker dropbox container stores synced files in the /dbox/Dropbox volume. Given that the Calibre database folder is named Calibre and located in the root of the Dropbox account you would then have to configure the Calibre database location as /dbox/Dropbox/Calibre (see below).

Using the app - Quick start

  1. Point your browser to http://hostname:8080 (or whatever host port you mapped the container to)
  2. Set Location of Calibre database to the path of the folder where you mounted your Calibre folder in the container (e.g. /calibre)
  3. Hit "submit" then "login".

Default admin login:
Username: admin
Password: admin123

To access the OPDS catalog feed, point your Ebook Reader to http://hostname:8080/opds.

ENV variables

SSL_CERT_NAME
Default:

To use a custom SSL certificate copy or mount the crt file to /etc/nginx/ssl and set this environment variable to the cert's filename, e.g. "example.com.crt". Don't forget modify your docker run command to map port 443 from the container to the host.

SSL_KEY_NAME
Default:

To use a custom SSL certificate copy or mount the private key file to /etc/nginx/ssl and set this environment variable to the key's filename, e.g. "example.com.key".

CALIBRE_DBPATH
Default: ``

Custom folder for the application database (note: this is not the Calibre ebook database). You may use this persist application data in a volume.

Running behind additional reverse proxy

Configure your proxy to pass it's public hostname in the X-Forwarded-Host header.

Docker Pull Command
Owner
janeczku
Source Repository

Comments (7)
trickyboy
2 days ago

Thank you. I just installed on my new synology NAS in 10 minutes.
Is there a way to update it from time to time ? I tried to update from inside the Calibre interface ( in the admin panel) but then it breaks my Calibre after reboot of the container.
I'd like to put the config of the server ( the users and settings I set) outside of the container so I could just pull the new image available. What folder or file I have to put outside ? Thank you.

beerboyuk
3 months ago

Very, very nice. I was struggling to get the web client part of the aptalca/docker-rdp-calibre docker image working and stumbled across this. In 10 minutes I was ready to go! Love the UI too. Thank you!

montyj
3 months ago

I could not find a 'support' email address here or on github, so if this is the wrong place, my apologies!

  1. Does Calibre-Web allow multiple Calibre databases?

Mine are so big I have to break them down by category, ie "Fiction", "Non-Fiction", "Science Fiction", etc. I actually have 9 total, and setting up/providing users 9 links for access to multiple running server instances is way too much.

  1. Does the logging include user login and ebook access data? IE username, login date/time, ebooks read/downloaded, etc.

I am currently testing in on one of my databases and it has a great UI.

Thanks!

Monty

albert63
5 months ago

It is wonderful for Calibre db.. thanks
I could download "ebook" file after modifying web.py, but this file is not epub..
And it does not conver epub to mobi..by clicking 'send to kindle', it show the error message "There was an error sending this book: Could not convert epub to mobi"

joeykray
10 months ago

When trying to access my library, I get "502 Bad Gateway"

janeczku
a year ago

Could you open an issue report on GitHub and paste the error log? Thanks!
https://github.com/janeczku/calibre-web/

thexero
a year ago

is the mail send function up to date?
filled in the smtp settings in the admin menu, but i'll get an error message