Press play onyour own server
Bookmark is a self-hosted home for your audiobooks, with room on the same shelf for ebooks and comics. It fills in covers, metadata, and ratings on its own, the player is built around how people actually listen, and your progress follows you everywhere.
docker compose up -d · MIT licensed · your files stay yours
Metadata
A library that fills itself in
Point Bookmark at the folders you already have. Covers and chapters come out of your files; the rest syncs from Goodreads, Hardcover, Audnexus, and Comic Vine. Your originals are mounted read-only and never rewritten.
- Kept in sync, not fetched once. A background sync fills in descriptions, narrators, genres, and series order as your library grows.
- Ratings from Goodreads and Hardcover. Community ratings sync along with the rest of the metadata. Sort the library by them, or browse the top list.
- Fix anything by hand. Every field is editable, and a match dialog pulls better candidates when the automatic guess is wrong.
The player
Built around how people actually listen
- Playback speed. Anywhere from 0.5× to 2× on the web. The apps adjust in 0.05× steps.
- Sleep timer. Set it in minutes, or have it stop at the end of the chapter.
- Skip controls. Jump back 15 seconds or ahead 30 with one tap. The apps let you set your own intervals.
Progress sync
Pick up exactly where you left off
Your position saves to your server every few seconds while you listen. Pause on your phone in the checkout line, press play at your desk, and the same sentence is waiting. Live updates arrive over WebSocket; no refresh required.
iPhone & Android
Native apps, made for the way out the door
Not a wrapped website: real native apps that keep the whole library in your pocket, currently in beta.
- Offline first. Download books to the phone, listen in airplane mode, and progress reconciles the moment you are back.
- Paired in seconds. Open the Audiobook App page on the web, scan the QR code, done. No passwords retyped on a phone keyboard.
- Made for iPad too. A sidebar layout that actually uses the screen.
One shelf, three formats
Audiobooks first. Not audiobooks only.
Ebooks
EPUBs are scanned, enriched, and readable right in the browser. They are also served over OPDS, so you can keep using the reading app you already love.
Comics
Series and issues organized the way collectors expect: TPBs, omnibuses, one-shots. Browse, organize, and download your archives, or read them in your favorite comic app over OPDS.
AI narration
No audiobook edition? Bookmark can narrate an ebook into a real M4B, chapters included, using any OpenAI-compatible text-to-speech server. A ready-to-run engine ships in the compose file.
Your household, your rules
Make it yours, and theirs
- Every listener gets their own shelf. Separate progress, lists, stats, and preferences per account; nobody loses your spot.
- Permissions and tag filters. Decide who can edit metadata or upload, and keep certain shelves out of certain accounts.
- Slots into your stack. Optional OpenID Connect SSO, per-user API keys, and a REST API documented with Swagger.
- Sixteen accents, thirteen surfaces. From pure-black Pitch to light Silver, in English and Swedish.
Self-hosting
From zero to listening tonight
One image for the app, one for Postgres. Copy the config template, point it at your media folders, and start both with a single command. The first account you create becomes the admin.
$ git clone https://github.com/RobinEdquist/bookmark.git $ cd bookmark $ cp example.env .env # point .env at your media folders, then: $ docker compose up -d ➜ Bookmark is listening at http://localhost:3001