A modern, fast, self-hosted web interface for your Calibre library. Browse, search, and download your ebooks from any device — including e-readers.
- Browse your library — by title, author, series, or tag
- Search & filter — full-text search with filters for language, format, and tags
- Download books — directly in any format Calibre has (EPUB, MOBI, PDF, etc.)
- Dark & light mode — with system preference detection
- E-reader friendly — minimal JavaScript, large touch targets, fast on e-ink displays
- OPDS catalog — connect e-reader apps like KOReader, Moon+ Reader, or Librera
- Multi-language UI — English and German included
- Read-only — never modifies your Calibre library
# docker-compose.yml
services:
calweb:
image: ghcr.io/faulander/calweb:latest
ports:
- "3000:3000"
volumes:
- /path/to/your/calibre/library:/library:ro
- calweb_data:/data
environment:
- SESSION_SECRET=change-me-to-a-random-string
restart: unless-stopped
volumes:
calweb_data:docker compose up -dOpen http://localhost:3000 — you'll be prompted to create an admin account on first launch.
| Environment Variable | Default | Description |
|---|---|---|
CALIBRE_LIBRARY_PATH |
/library |
Path to your Calibre library (mount as read-only volume) |
CALWEB_DATA_PATH |
/data |
Path for calweb's own database (user accounts, sessions) |
SESSION_SECRET |
— | Secret for signing session cookies (required in production) |
Point your e-reader app to:
http://your-server:3000/opds
OPDS supports HTTP Basic Auth using your calweb credentials. Feeds available:
/opds— catalog root/opds/recent— recently added books/opds/search?q=term— search/opds/authors— browse by author/opds/tags— browse by tag
Requires Bun v1+.
git clone https://github.com/faulander/calweb.git
cd calweb
bun installCreate a .env file:
CALIBRE_LIBRARY_PATH=/path/to/your/Calibre Library
CALWEB_DATA_PATH=./data
SESSION_SECRET=dev-secretRun the dev server:
bun run devBuild for production:
bun run build
bun build/index.jsComing soon
MIT