A media request management system for books and music.
Discover, request, and track ebooks, audiobooks, and music albums,
with automated fulfillment through Readarr and Lidarr.
Installation • Getting Started • Development
Built with Express 5, Next.js 16, React 19, and SQLite.
| Discover | Book Detail |
|---|---|
![]() |
![]() |
| Requests | Settings |
|---|---|
![]() |
![]() |
- Unified request system for ebooks, audiobooks, and music albums
- Discovery feeds — trending books, trending music, recently requested, recently added
- Multi-source search with automatic ISBN detection
- Request workflow — pending, approved, declined (with reason), completed, failed
- Auto-approve — configurable per user/role
- Request quotas — separate limits for ebook, audiobook, and music requests per 7-day window, configurable per role with per-user overrides
- Download progress tracking — live progress from Readarr/Lidarr queues
- Language preferences — request books in a preferred language
- Book metadata with editions, series, authors, genres, ratings
- Music metadata with tracklists, artists, album types
- Author and artist profile pages with full catalogs
- Format availability indicators (ebook, audiobook, or both)
- Report issues on media items (metadata, quality, format, missing content)
- Threaded comments on issues
- Resolve/reopen workflow with notifications
- Authentication — local accounts, Plex (PIN flow), OIDC (multiple providers, PKCE)
- Role-based permissions — Admin, Manager, User, or custom roles
- 26 granular permissions — request creation, auto-approve, request management, quotas, issue management, settings access
- Rate-limited login (10 attempts per 15 minutes)
| Service | Role |
|---|---|
| Readarr | Download manager for books |
| Lidarr | Download manager for music |
| Audiobookshelf | Library source for ebooks & audiobooks |
| Jellyfin | Library source |
| Plex | Library source & authentication provider |
| Hardcover | Primary book metadata provider |
| Google Books | Fallback metadata (ISBN lookup) |
| OpenLibrary | Fallback metadata (editions, open data) |
| MusicBrainz | Music metadata |
Multiple servers supported per service. Provider priority is configurable.
- Global agents — Discord (webhook), generic Webhook
- Per-user agents — Email (SMTP)
- Notification types: new request, approved, declined, failed, available, auto-approved, issue events
- Per-user notification preferences with permission-based filtering
- Enable/disable media types (ebooks, audiobooks, music)
- Metadata provider priority and caching
- Background job management with manual triggers
- Unmatched media item tracking
- Dark theme, responsive design (Tailwind CSS 4)
- Internationalization — English, French
- Setup wizard for first-time configuration
docker compose up -dThen open http://localhost:5055 and follow the setup wizard.
See docs/installation.md for detailed installation instructions.
See docs/development.md for development setup instructions.



