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?
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
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
- Login via default Credentials
- You are asked to configure the path to
- by default, Calibre sets up an empty one in
This one needs to be configured when using UI upload
- If you use the via /books_to_add path approach
/books/<name e.g. packtpub>/metadata.db
- After you configured 2 OR 3 you can start using Calibre (web)
Configure UI Upload
- Head over to http://localhost:8083/admin/config
- Feature Configuration
- Tick Enable Uploads (Please ensure users having also upload rights)
and hit Save
- Go to: http://localhost:8083/admin/user/1
- Tick Allow Uploads and hit Save
- Now the Upload button should appear in the top right