Setup your own Ebook Manager using Calibre (web)

D. Heinrich
2 min readJun 27, 2022

Thanks to Packtpub and several others, I’ve built myself a ~800+ e-book shelf. But when it comes to organizing them, I lacked a solution for years now.

I looked for a tool and finally found Calibre (web). Calibre enables me to organize, convert and even read my e-books from wherever I want to.

What is Calibre?

by leram84

The calibre Content server allows you to access your calibre libraries and read books directly in a browser on your favorite mobile phone or tablet device. As a result, you do not need to install any dedicated book reading/management apps on your phone. Just use the browser. The server downloads and stores the book you are reading in an off-line cache so that you can read it even when there is no internet connection.

How to setup Calibre?

I used docker-compose at first because it seamed to be the easieset way to get started.

If you choose to add your e-books via local path, then you should use the below version and change the path below to fit your needs:


This path should contain the e-books you want to add.
I tested mine with either PDF or ePUB.


Start Calibre (web)

$ docker-compose up -d

Add your books

* via /books_to_add path

NOTE: You can skip this, if you plan to upload your e-books via UI.

Before we access the UI, we need to create a metadata.db .

To do so, we need to access the freshly created container.

So execute the following and move to the path

docker exec -ti calibre-web bash

Then we want Calibre to build it up using our e-books.

root@<containerID>:/# calibredb add --add /books_to_add/* --with-library <name e.g. packtpub>

This can take a while, but anyway, we can access the UI already.

Access Calibre (web)

When started (takes a 30 seconds to a few minutes) you can access Calibre (web) using http://localhost:8083 .

  1. Login via default Credentials
    user: admin
    password: admin123
  2. You are asked to configure the path to metadata.db
  3. by default, Calibre sets up an empty one in /config/metadata.db
    This one needs to be configured when using UI upload
  4. If you use the via /books_to_add path approach
    use /books/<name e.g. packtpub>/metadata.db
  5. After you configured 2 OR 3 you can start using Calibre (web)

Configure UI Upload

  1. Head over to http://localhost:8083/admin/config
  2. Feature Configuration
  3. Tick Enable Uploads (Please ensure users having also upload rights)
    and hit Save
  4. Go to: http://localhost:8083/admin/user/1
  5. Tick Allow Uploads and hit Save
  6. Now the Upload button should appear in the top right