Calibre Web docker image
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
The docker dropbox image stores the synced files in the /dbox/Dropbox
volume. When mounting the exposed volumes to the Calibre Web container, we have to tell it about the location of the Calibre database by supplying it in the CALIBRE_PATH
ENV variable. Supposing the Calibre database folder is named Calibre
and located in the root of the Dropbox account we do the following:
docker run -d --name calibre-web \
--volumes-from dropbox \
--env CALIBRE_PATH=/dbox/Dropbox/Calibre \
-p 8080:80 janeczku/calibre-web
Using the app - Quick start
- Point your browser to
http://hostname:8080
(or whatever host port you mapped the container to) - Set
Location of Calibre database
to the path of the folder where you mounted your Calibre folder in the container (e.g. /calibre) - 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".