Calibre-Web Automated¶
Ebook library management with automatic ingestion and format conversion.
Quick Reference¶
| Field | Value |
|---|---|
| URL | https://books.bogocat.com |
| Internal | http://10.89.97.50:8083 |
| Location | arr-stack VM (Docker) |
| Auth | Authentik SSO (native OIDC) |
| Image | crocodilestick/calibre-web-automated:dev |
Features¶
- Web-based ebook library (Calibre backend)
- Automatic book ingestion from watch folder
- Format conversion (EPUB, MOBI, AZW3, KEPUB, PDF)
- Kobo/KOReader sync support
- Native OAuth2/OIDC authentication
- Send to Kindle/email
Configuration¶
Docker Compose¶
Location: /opt/arr-stack/docker-compose.yml on VM 100
calibre-web:
image: crocodilestick/calibre-web-automated:dev
container_name: calibre-web
environment:
- PUID=1000
- PGID=1000
- TZ=America/New_York
- NETWORK_SHARE_MODE=true
volumes:
- /opt/arr-stack/configs/calibre-web:/config
- /mnt/media/calibre:/calibre-library # MUST be /calibre-library - CWA requirement
- /mnt/media/books_ingest:/cwa-book-ingest
ports:
- "8083:8083"
restart: unless-stopped
Important: CWA requires the Calibre library (containing metadata.db) to be mounted at /calibre-library. Do not change this internal path.
Authentik OIDC Setup¶
- Create OAuth2/OpenID Provider in Authentik:
- Name:
calibre-web-provider - Redirect URI:
https://books.bogocat.com/login/generic/authorized -
Scopes:
openid email profile groups -
Create Application:
- Name:
Calibre-Web - Slug:
calibre-web -
Provider:
calibre-web-provider -
Configure in CWA Admin → OAuth Settings:
- Enable Generic OAuth
- Client ID: (from Authentik)
- Client Secret: (from Authentik)
- Metadata URL:
https://auth.bogocat.com/application/o/calibre-web/.well-known/openid-configuration - OAuth Redirect Host:
https://books.bogocat.com - Scopes:
openid email profile groups - Admin Group Name:
calibre-admins(must exist in Authentik)
Known Issue: OAuth Redirect Loop (PR #827)¶
The dev branch may have a redirect loop bug. Fix by patching in-container:
docker exec calibre-web sed -i 's/abort(response)/return response/g' \
/app/calibre-web-automated/cps/oauth_bb.py
docker restart calibre-web
This fix is ephemeral - lost on container recreation. Monitor PR #827 for upstream merge.
Paths¶
| Container Path | Host Path | Purpose |
|---|---|---|
/config |
/opt/arr-stack/configs/calibre-web |
App database, settings |
/calibre-library |
/mnt/media/calibre |
Calibre library (must use this path) |
/cwa-book-ingest |
/mnt/media/books_ingest |
Auto-import folder |
Adding Books¶
- Auto-import: Drop files in
/mnt/media/books_ingest/- CWA processes automatically - Web upload: Use the Upload button in the web UI
- Direct: Add to Calibre library folder (requires manual metadata refresh)
Admin Access via Groups¶
CWA resets user roles on each OAuth login. To persist admin:
- Create
calibre-adminsgroup in Authentik - Add yourself to the group
- In CWA OAuth Settings, set Admin Group Name to
calibre-admins - Add
groupsto OAuth scopes
Troubleshooting¶
Books not showing¶
Check library path in Admin → Basic Configuration → "Location of Calibre Database" should be /calibre-library
OAuth login fails with redirect loop¶
Apply PR #827 fix (see above) or wait for upstream merge
User not admin after login¶
Configure group-based admin assignment (see Admin Access section)
Migration Notes¶
Migrated from LXC 122 to arr-stack VM on 2025-12-17. Old LXC can be stopped/removed.