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:
- Set the library path to
/books - Change the admin password immediately
- Go to Admin → Edit Basic Configuration and review settings
Step 5: Organize Your Library
Upload Books via Web UI
- Click the Upload button (top right)
- Select files — EPUB, PDF, MOBI, AZW3, CBR, CBZ all supported
- 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
- Go to Search → OPDS Catalog
- Add catalog:
http://your-server-ip:8083/opds - Enter your Calibre-Web credentials
- Browse and download books directly to your eReader
Connect Moon+ Reader (Android)
- Menu → OPDS Catalog → Add
- Enter the OPDS URL and credentials
- Browse your full library from your phone
Step 7: Send to Kindle
Calibre-Web can email books directly to your Kindle:
- Go to Admin → Edit Basic Configuration → Email
- Configure SMTP:
- In your Amazon account, add the sending email to Approved Senders
- 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:
- Go to Admin → Add New User
- Set username, password, email
- 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:
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
/bookscontains ametadata.dbfile - 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-calibreis in your compose file - Restart the container after adding the mod:
docker compose restart
OPDS not connecting
- Verify the URL includes
/opdsat 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
| Metric | Usage |
|---|---|
| RAM | ~100MB base + ~50MB per active reader |
| CPU | Minimal (spikes during conversion) |
| Disk | ~100MB app + your book collection |
| Network | Low (transfers individual book files) |
Calibre-Web vs Alternatives
| Feature | Calibre-Web | Kavita | Komga | Audiobookshelf |
|---|---|---|---|---|
| eBooks | ✅ | ✅ | Partial | ❌ |
| 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.