Calibre-Web is a web app providing a clean interface for browsing, reading, and downloading eBooks using a Calibre database.
This tutorial shows how to install calibre-web on QNAP-NAS.
The installation described here was done on TS-251+ (Celeron J1900 4 Cores) but should be applicable to a wide variety of other QNAP NAS models.
Caution: This is a simple setup assuming that service will be used only within the LAN by the trusted users and therefore access management, other networking, and security matters are not in the scope of this tutorial.
- Install service from Docker Container via Container Station
- Create Container
- container initialization
- Caliber-web initial setup
- Post installation
- Change admin password
- Library change
Install service from Docker Container via Container Station
- Search for the
calibre-webdocker image in the
Createtab of the Container Station.
- The popup window for version selection should be displayed. Select
latestunless you have good reason to use an older version. Click
- You need to confirm your intent to install calibre-web on another popup window.
Before the service will be started you need to configure it properly to provide information about where your Calibre book library (or multiple libraries) is located, configure the IP where the service will be available, etc.
We are using the docker image from linuxserver, the configuration proposed in this tutorial is based on suggestions from linuxserver/calibre-web on how to run the service using the docker command-line.
docker run -d \ --name=calibre-web \ -e PUID=1000 \ -e PGID=1000 \ -e TZ=Europe/London \ -e DOCKER_MODS=linuxserver/mods:universal-calibre `#optional` \ -e OAUTHLIB_RELAX_TOKEN_SCOPE=1 `#optional` \ -p 8083:8083 \ -v /path/to/data:/config \ -v /path/to/calibre/library:/books \ --restart unless-stopped \ lscr.io/linuxserver/calibre-web:latest
The configuration is divided into sections. We will touch:
Shared folders and
Set the time zone that suits you the most.
my settings for env
PUID=1000 PGID=1000 TZ=Europe/London DOCKER_MODS=linuxserver/calibre-web:calibre
I suggest to create directory
/share/Container - it will be placeholder for configuration and libraries.
- create folder
/share/Container/calibre/config- for configuration
- create folder
/share/Container/calibre/books- as a folder that will contain one or more calibre libraries. If you have your Calibre library already on the NAS but in the different location you can use symbolic links pointing at your calibre libraries. Example of two libraries:
Inside of these folders you should see directories corresponding to author names and
CAUTION: QNAP's container station cannot change the shared folder settings using the Web GUI after the container is created.
I've created shared folder mappings:
/Container/calibre -> /calibre /Container/calibre/config -> /config /Container/calibre/books/books_it -> /books_it /Container/calibre/books/books_life -> /books_life /Container/calibre/books/books_ml -> /books_ml
Set the calibre-web container IP address to e.g. 192.168.1.230.
no need to modify anything
When the customizations in configuration are done, press the "Create" button and the summary of settings will be displayed.
When creation starts, you will be redirected to the creation screen of Container Station. While creating, you need to wait until the number (1 in the example below) near the top right of the Container Station window (right next to the IoT icon) disappears.
In the example above, we have set auto-start in the creation panel, so when the container is created, it will start running. Initialization happens when the container is first run.
On the "Overview" tab of the container station, click the corresponding container name to display the status
Caliber-web is not yet accessible during initialization, so we have to wait.
If the following message is displayed, it seems that initialization is completed and access from the Web is possible.
INFO in web : Starting Calibre Web ... INFO in server : Starting Gevent server
Caliber-web initial setup
Once Caliber-web is available, access the container's server from a web browser.
In this example the IP address of the container is 192.168.1.230. The port number used by calibre-web has not changed, so it is 8083. In other words, access http://192.168.1.230:8083/.
When accessing for the first time, basic settings are required.
- Set e.g.
/books_lifeas the location of library database.
The setting is applied by pressing the "Save" button. Then, log-in using the "Login" button.
By default, as described in https://hub.docker.com/r/linuxserver/calibre-web/, log-in with username
admin and password
If you can log in, you should be able to see the library you set during initialization.
Change admin password
To change the admin user's password after logging in, click the lowercase username
admin with the person icon in the upper right corner of the window to switch to the change profile screen.
- To change the library after logging in, select the circular icon "Admin" in the upper right (to the left of the upper-body icon, where admin in lowercase is your username).
- To change the library, select
Configuration -> Basic Configuration.
- Here, change the library to e.g.
- Press the "Submit" button to confirm your changes.
- Click the calibre-web icon on the upper left to display the library, and the changed library should be displayed.
- you can install calibre-web using docker-compose instead of using container station. This is not covered by this tutorial, see docker-compose file on Docker Hub
- you can use other front-ends for accessing calibre via web. Examples are e.g.:
- seblucas/cops - Calibre OPDS (and HTML) PHP Server : web-based light alternative to "Calibre content server"/"Calibre2OPDS" to serve ebooks (epub, mobi, pdf, ...)
Article Run Calibre-web on QNAP NAS (in Japanese) helped me with my first setup of calibre web. This tutorial is heavily based on that article.