Audiobook Server
A self-hosted audiobook library for the family
Project Overview
This is the Plex setup idea applied to books. Someone asks for an audiobook, the server finds it and files it, and it shows up in the app on their phone. ReadMeABook handles the request and the download, and Audiobookshelf serves the library. Both run in Docker on the TrueNAS server.
The library holds 90 books right now, about a month and 21 days of listening if you played them back to back. What I've finished lately shows up under recent books on the media page.
From Request to Player
- Request → A title gets requested in ReadMeABook
- Search → ReadMeABook searches my indexers through Prowlarr
- Download → qBittorrent downloads the book
- Hardlink → The finished book is hardlinked into the library folder, so it doesn't take up space twice
- Match → Audiobookshelf picks it up and matches covers, narrators, and series against Audible.com
- Listen → It appears in everyone's player app, with listening progress kept on the server
The Apps
ReadMeABook (Requests and Downloads)
- Function: Takes audiobook requests, searches for them, and hands the download to qBittorrent
- Integration: Prowlarr for indexers, qBittorrent for downloads, Audiobookshelf for the finished library
- Why: Nobody needs to know where books come from. They ask for one and it arrives
- Source: github.com/kikootwo/readmeabook
Audiobookshelf (Library and Streaming)
- Function: Serves the library and keeps each listener's progress, bookmarks, and finished books
- Metadata: Matches books against Audible.com for covers, narrators, series order, and descriptions
- Access: Everyone streams from outside the house through the Cloudflare Tunnel, with their own account
- Source: github.com/advplyr/audiobookshelf
The Players
Audiobookshelf has an open API, so everyone gets to pick their own app and the server doesn't care.
What It Doesn't Do
- Audible: I don't buy from Audible. The Audible links on the media page just point at the audiobook edition of something I listened to
- Hardcover: Hardcover is where I log what I read. Nothing syncs listening progress there; I update it by hand
- Shelfmark: I ran Shelfmark for a while too, and removed it once ReadMeABook covered the same ground
Backups
- Database: ReadMeABook's Postgres database is in the nightly database dumps
- Live Files: Its live database, Redis, and cache folders are left out of the cloud sync, because the dump already covers them and a copy taken mid-write isn't a usable backup
- Library Config: Audiobookshelf's config syncs off-site every day
Related Projects
- Plex Media Server: The same request-to-library setup, for movies and TV.
- TrueNAS Server Build: The server it runs on.