If you have a collection of eBooks scattered across devices, Calibre-Web brings them together into a beautiful, self-hosted library you can access from anywhere. Think of it as your personal Kindle store — minus the DRM and data harvesting.

Calibre-Web is a web-based frontend for the popular Calibre eBook manager. It gives you a clean, modern interface to browse, read, and download your books from any browser or eReader device.

Why Calibre-Web?

  • Web-based reader — read EPUBs and PDFs directly in your browser
  • OPDS feed — connect eReader apps like KOReader, Moon+ Reader, or FBReader
  • User management — share your library with family, each with their own account
  • Send to Kindle — email books directly to your Kindle device
  • Metadata editing — fix titles, authors, covers, and descriptions
  • Format conversion — convert between EPUB, MOBI, PDF, and more (with Calibre backend)
  • Mobile-friendly — responsive UI works great on phones and tablets
  • Lightweight — runs on a Raspberry Pi without breaking a sweat

Prerequisites

  • Docker and Docker Compose installed
  • ~128MB RAM
  • Your eBook collection (EPUB, PDF, MOBI, etc.)
  • Optional: existing Calibre library database

Step 1: Project Setup

mkdir -p ~/calibre-web/{books,config} && cd ~/calibre-web

Step 2: Docker Compose

Create docker-compose.yml:

services:
  calibre-web:
    image: lscr.io/linuxserver/calibre-web:latest
    container_name: calibre-web
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=America/New_York
      - DOCKER_MODS=linuxserver/mods:universal-calibre
    volumes:
      - ./config:/config
      - ./books:/books
    ports:
      - "8083:8083"
    restart: unless-stopped

The DOCKER_MODS line adds Calibre’s conversion tools, so you can convert between formats directly in the web UI.

Step 3: Add Your Books

Copy your eBook files into the books directory:

cp ~/Downloads/*.epub ~/calibre-web/books/
cp ~/Downloads/*.pdf ~/calibre-web/books/

If you already use Calibre desktop, copy your entire library:

cp -r ~/Calibre\ Library/* ~/calibre-web/books/

If starting fresh (no existing Calibre database), you’ll need a blank one:

# Download a blank Calibre database
wget -O ~/calibre-web/books/metadata.db \
  "https://raw.githubusercontent.com/janeczku/calibre-web/master/library/metadata.db"

Step 4: Start and Configure

docker compose up -d

Open http://your-server-ip:8083:

  • Default username: admin
  • Default password: admin123

First login steps:

  1. Set the library path to /books
  2. Change the admin password immediately
  3. Go to Admin → Edit Basic Configuration and review settings

Step 5: Organize Your Library

Upload Books via Web UI

  1. Click the Upload button (top right)
  2. Select files — EPUB, PDF, MOBI, AZW3, CBR, CBZ all supported
  3. Calibre-Web auto-extracts metadata from the file

Fix Metadata

Click any book → Edit Metadata:

  • Fix title, author, series info
  • Upload a cover image
  • Add tags for organization
  • Edit description/summary

Fetch Metadata Automatically

Go to Admin → Edit Basic Configuration → External Binaries:

  • Enable Google Books or Amazon metadata providers
  • Now when editing a book, click Get Metadata to auto-fill details and covers

Step 6: Set Up OPDS for eReader Apps

OPDS lets eReader apps browse and download from your library. It’s already enabled by default.

OPDS URL: http://your-server-ip:8083/opds

Connect KOReader

  1. Go to Search → OPDS Catalog
  2. Add catalog: http://your-server-ip:8083/opds
  3. Enter your Calibre-Web credentials
  4. Browse and download books directly to your eReader

Connect Moon+ Reader (Android)

  1. Menu → OPDS Catalog → Add
  2. Enter the OPDS URL and credentials
  3. Browse your full library from your phone

Step 7: Send to Kindle

Calibre-Web can email books directly to your Kindle:

  1. Go to Admin → Edit Basic Configuration → Email
  2. Configure SMTP:
    SPEUPMonsaTrcesPtrrs:ynwSpaoe5tmrr8iedv7o::enr:ya:opSupsTr-mA-stReppTme.TacgLiimSlfa@iigclm-.apciaolsm.scwoomrd
  3. In your Amazon account, add the sending email to Approved Senders
  4. Set each user’s Kindle email in their profile

Now any book has a Send to Kindle button.

Step 8: Multi-User Setup

Share your library with family:

  1. Go to Admin → Add New User
  2. Set username, password, email
  3. Configure permissions:
    • Download — can download books
    • Upload — can add new books
    • Edit — can modify metadata
    • Admin — full access (be careful)

Each user gets their own reading progress, shelves, and recommendations.

Step 9: Reverse Proxy (Remote Access)

For access outside your network, put Calibre-Web behind a reverse proxy:

Caddy:

b}ooksr.eyvoeurrsdeo_mparionx.ycolmoc{alhost:8083

Nginx:

server {
    server_name books.yourdomain.com;
    location / {
        proxy_pass http://localhost:8083;
        proxy_set_header Host $host;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        client_max_body_size 100M;
    }
}

The client_max_body_size is important — without it, large book uploads will fail.

Step 10: Backups

# Backup config and database
tar -czf ~/backups/calibre-web-$(date +%Y%m%d).tar.gz \
  -C ~/calibre-web config/ books/metadata.db

Your actual book files in books/ should be backed up separately (they’re large).

Troubleshooting

“DB Location is not Valid”

  • Ensure /books contains a metadata.db file
  • Check permissions: chown -R 1000:1000 ~/calibre-web/books

Books not showing up after upload

  • Click Admin → Reconnect to Calibre DB
  • Check that the file format is supported

Conversion fails

  • Make sure DOCKER_MODS=linuxserver/mods:universal-calibre is in your compose file
  • Restart the container after adding the mod: docker compose restart

OPDS not connecting

  • Verify the URL includes /opds at the end
  • Check that the user has download permissions
  • Some apps need HTTP basic auth enabled

Slow with large libraries (10,000+ books)

  • Enable Google Drive storage for book files (offloads disk I/O)
  • Increase container memory limit
  • Use SSD storage for the metadata database

Resource Usage

MetricUsage
RAM~100MB base + ~50MB per active reader
CPUMinimal (spikes during conversion)
Disk~100MB app + your book collection
NetworkLow (transfers individual book files)

Calibre-Web vs Alternatives

FeatureCalibre-WebKavitaKomgaAudiobookshelf
eBooksPartial
Comics/Manga
Audiobooks
OPDS
Send to Kindle
Web reader
Format conversion
Multi-user

Conclusion

Calibre-Web turns a pile of eBook files into a proper library you can access from anywhere. It handles everything — browsing, reading, converting, sharing, and sending to Kindle — all from a clean web interface.

If you read eBooks and value owning your collection, Calibre-Web is essential self-hosting infrastructure. Set it up once and enjoy your personal library forever.