How to Install Calibre-Web (Your Ebook Library on Every Device, Including Kindle)

Calibre on the desktop is the standard tool for managing ebooks, and its library is just a folder with a database in it. Calibre-Web serves that folder from your server: browse covers in a browser, read EPUBs without installing anything, upload new books from any device, convert formats, send a book to a Kindle with one click, and let reader apps on phones pull from it. The desktop Calibre can keep managing the same library.
Quick reference
| Task | What |
|---|---|
| Folder | ~/docker/calibre-web/compose.yaml |
| Library | /mnt/data/books containing metadata.db |
| Web | http://server-ip:8083 |
| Default login | admin / admin123 — change it |
| Kindle | Admin → Email server settings + your Kindle address |
| Reader apps | OPDS feed at http://server-ip:8083/opds |
1. The compose file
mkdir -p ~/docker/calibre-web && cd ~/docker/calibre-web
nano compose.yaml
services:
calibre-web:
image: lscr.io/linuxserver/calibre-web:latest
container_name: calibre-web
environment:
PUID: 1000
PGID: 1000
TZ: Europe/London
DOCKER_MODS: linuxserver/mods:universal-calibre
volumes:
- ./config:/config
- /mnt/data/books:/books
ports:
- "8083:8083"
restart: unless-stopped
The DOCKER_MODS line installs the Calibre conversion engine inside the container, so uploads can be converted to EPUB or AZW3 for Kindles. Leave it out on a Pi if space is tight.
docker compose up -d
sudo ufw allow 8083/tcp
2. The library
Calibre-Web needs a Calibre library — a folder with metadata.db in it. Either:
- copy your existing desktop Calibre library to /mnt/data/books (it's the folder with metadata.db and author subfolders), or
- create an empty one: on your PC, open Calibre → Calibre Library → Create empty library, then copy that folder across.
Open http://192.168.1.50:8083, log in as admin / admin123, and enter /books as the library location. Then Admin → Users → admin and change the password.
3. Upload and convert
Admin → Basic configuration → Feature configuration → Enable uploads. Now the upload button accepts EPUB, MOBI, AZW3, PDF and CBZ. With the conversion mod, a book's page offers Convert between formats — EPUB in, AZW3 out for a Kindle.
4. Read in the browser
Click a book → Read in browser. EPUB, PDF and comics open in a built-in reader that remembers your page. Good enough for a laptop; on a phone you'll want an app.
5. Send to Kindle
- On Amazon's site, Manage Your Content and Devices → Preferences → Personal Document Settings: note your Kindle's email address and add your sending address to the approved list.
- Calibre-Web Admin → Email server settings: your SMTP details (the Gmail app password from tutorial 49 works), and the Kindle address in your user's settings.
- On any book: Send to Kindle. It converts if needed and emails it.
6. Reader apps via OPDS
Most reader apps can add a catalogue: OPDS URL http://192.168.1.50:8083/opds, your Calibre-Web login. Then browse and download the library from inside the app — KOReader, Moon+ Reader, Librera (Android); Marvin, KyBook (iOS). Through the proxy, use the https address.
Calibre desktop and Calibre-Web together
Both can use the same library, but not at the same moment — Calibre-Web locks the database while it writes. Add books from either; just don't do it in both at once.
Troubleshooting
"DB location is not valid". No metadata.db in the folder you gave, or the container can't read it (PUID/PGID vs the folder's owner).
Upload button missing. Uploads aren't enabled in Feature configuration.
Convert does nothing. The conversion mod didn't install (first start takes a while), or Admin → Basic configuration → External binaries needs the path /usr/bin/ebook-convert.
Kindle never receives the book. Sending address not on Amazon's approved list, or the format isn't one Amazon accepts — send EPUB or AZW3.
Wrapping up
One container, a Calibre library folder, change the admin password, enable uploads. Books in a browser, on a Kindle by email, and in any reader app through OPDS — and the desktop Calibre you already use keeps working on the same shelf.
