Calibre-Web is an eBook viewer which uses an existing Calibre database to pull content. We do not run the stand alone version of Calibre, but instead use a build of LazyLibrarian which has Calibre built in.

Some of Calibre-web’s features include:

Full HTML5 GUI.

User management with per-user permissions

Custom shelves

Editing eBook metadata

Send eBooks to Kindle devices

Reading eBooks directly in a browser

Setting up Calibre-web is really simple once you have Docker installed. If you’re on a Synology device, this can be done by going to Package Center > Settings > Package Sources and adding http://packages.synocommunity.com/. Once that resource has been added, search the package center for Docker. Once Docker has been installed, run it and navigate to the registry tab to search for Calibre-web. We prefer LinuxServer’s automatic builds. Once you find the one you would like, select it and click download it.

After it’s done downloading, it will move into the Image tab. Launch the container to begin configuring it.

Start out by giving the container a name and then clicking Advanced Settings.

Within the Advanced Settings, enable auto-restart, and create a shortcut on desktop (if that interests you). Use your servers IP address followed by the container’s port number 8083 .

Next setup the volumes. These folders all need to be created prior to setting up the container so that they can be browsed to and mounted. Click Add Folder to begin mounting each path. Use /config to mount the folder for Calibre-web’s configuration files, and /Media to mount the folder which contains the eBook library, as well as Calibre’s database (metadata.db). If you already setup LazyLibrarian using this tutorial then the books directory has already been created. These are CASE SENSITIVE!

Port settings are used to open the container within a browser. This should be left to the default value since Calibre-web will be looking for this port. Local Port needs to be changed from Auto to the matching Container Port. If this is not done, your machine may use a random port each time and cause confusion.

Environment is where variables are set that are needed to allow the container to run. For the container to run properly and to access and modify the directories, it must be given user permissions. It is good practice to create a new user that is used exclusively for running the container. This user needs read/write privileges to the Docker’s /config directory as well as the /Media directory. The purpose of this is so that in the event the container is compromised, the entire NAS will not be accessible. More on this can be found here.

To obtain the Personal User ID (PUID) and Personal Group ID (PGID) of the user that will be running the container, use Putty or an equivalent program to SSH into your NAS.

Enter the IP address of your NAS in Putty, select the SSH radio button, and click Open.

Enter the admin login information for the NAS. You will not be able to see the password as you type it. Once logged in type id <user> to show your UID (aka PUID) and the GID (aka PGID) for the selected user. We setup a user named automation to run the containers. The command for obtaining the UID and GID in this case was id automation .

Put the IDs from the SSH session into the Environment tab as shown below. It’s also a good idea to input the local timezone, as many containers need this to run. The timezone codes can be found here.

Now that the setup is complete, click ‘ok’ and the container will launch. Read about how to configure Calibre-web here.