Skip to content

StoryBookWorm Bundle

The StoryBookWorm Bundle is for households that read and listen to the same books. Audiobookshelf plays the audiobooks, Grimmory and BookOrbit serve the ebooks, and Storyteller joins an ebook and its audiobook into a single EPUB 3 book that highlights each sentence as the narrator reads it. Around them, Chaptarr keeps the collection in order, AudioBookRequest takes requests, and Shelfmark searches the providers you configure.

Every app sees the same storage at the same paths. That matters most for Storyteller: it reads your ebooks and audiobooks where they already are, so there is one library to keep, not one per app.

When does the StoryBookWorm Bundle make sense?

  • You switch between reading and listening: the audiobook on the commute, the ebook in bed.
  • Someone in the house is learning to read, or reading in a second language, and reading along with a narrator helps.
  • You want audiobooks and ebooks managed together, with one collection manager for both formats.
  • You want the phone apps to work from anywhere, with no machine left on at home.

If you only listen, the AudioBookWorm Bundle is smaller. For comics as well, see the SuperBookWorm Bundle.

Get a 7-day trial of the StoryBookWorm Bundle! ๐Ÿช„

What's in it?

App Its job in the bundle Sign-in
Audiobookshelf The audiobook player and library: web, iOS and Android apps, progress per user Its own accounts
Storyteller Joins an ebook and its audiobook into one read-along EPUB 3, with its own reading apps Its own accounts
Grimmory Ebook, PDF and comic library: smart shelves, browser reader, OPDS, Kobo and KOReader sync Its own accounts
BookOrbit Reader for ebooks, PDFs, comics and audiobooks, with Kobo and KOReader sync Its own accounts
Chaptarr Collection manager for audiobooks and ebooks in one library, narrator and edition aware Your ElfHosted login
AudioBookRequest A request page for audiobooks Your ElfHosted login
Shelfmark One search across the providers you configure, saving into a reader's library Your ElfHosted login
Prowlarr, Jackett and search helpers Keep your provider list in one place for the apps above Your ElfHosted login

How the apps fit together

Every app mounts the same two trees: your own cloud storage at /storage/rclone/<mount>/ (attached with magic mounting), and the bundle's working space at /storage/symlinks/, where /storage/symlinks/audiobooks is the folder the audiobook tools file into.

Storyteller pairs an ebook with an audiobook when they sit in the same folder. It does not match by title. So the read-along setup is one audiobooks folder that both Audiobookshelf and Storyteller watch, with each book's EPUB placed next to its audio files:

flowchart LR
  T[Chaptarr, requests, search] --> F["Audiobooks folder"]
  E[EPUB placed beside the audio] --> F
  F --> A[Audiobookshelf]
  F --> S[Storyteller]
  S --> R["Readaloud EPUB 3"]
  R --> P[Storyteller apps and EPUB 3 readers]
  A --> L[Audiobookshelf apps]

Grimmory and BookOrbit serve the ebooks you read on their own, from a books folder of your choice.

Transcription, the slow part of making a read-along book, runs on ElfHosted's shared GPU transcription service. It is included, on by default, and needs no account or key.

How do I use it?

1. Claim the apps with their own logins

Audiobookshelf, Storyteller, Grimmory and BookOrbit are not behind your ElfHosted login, so set them up as soon as your bundle is ready:

  • Audiobookshelf asks you to create the root user on the first visit.
  • Storyteller: set your own STORYTELLER_SECRET_KEY first, then create the admin account. Generate a long random string (for example with openssl rand -base64 32) and set it with ElfBot:
Quick-paste into Storyteller's environment variables using ElfBot
STORYTELLER_SECRET_KEY=<your string here>
  • Grimmory asks you to create an account on the first visit.
  • BookOrbit sends you through a setup page that only you can open while signed in to ElfHosted; see the BookOrbit page.

2. Set up the audiobook library

In Audiobookshelf, create a library (type Book) and add /storage/symlinks/audiobooks, where the bundle's tools file audiobooks, plus any audiobook folder you keep on your own storage under /storage/rclone/<mount>/.

In Chaptarr, add the Audiobookshelf connection so each import triggers a scan, as on the Chaptarr page. Chaptarr already files audiobooks into /storage/symlinks/audiobooks with Audiobookshelf's metadata and covers.

3. Make your first read-along book

  1. Put the book's EPUB in its audiobook folder, next to the audio files. Audiobookshelf shows it as that book's ebook too.
  2. In Storyteller, add a watch rule for the same audiobooks folder under Settings โ†’ Import rules, with import mode Reference, so Storyteller reads the files where they are instead of copying them.
  3. Send readalouds to a folder of their own under Settings โ†’ Readaloud location, for example /storage/rclone/<mount>/readalouds, so a second EPUB doesn't appear in each audiobook folder.
  4. Turn on scheduled scans under Settings โ†’ Library scanning, so Storyteller notices books added by the other apps.
  5. Open the book in Storyteller and choose Create readaloud.

The Storyteller page covers each of these in more detail, including what happens to older EPUB 2 files.

4. Set up the ebook side

Create a books folder on your own storage and point a Grimmory library (and a BookOrbit library, if you use it) at /storage/rclone/<mount>/books. Chaptarr's eBooks root folder arrives at /storage/symlinks/books: point your readers there too, or give Chaptarr a root folder on your own storage instead. Shelfmark can save into your books folder, into BookOrbit's Book Dock (/bookorbit-bookdock), or into an audiobook folder; see the Shelfmark page.

5. Set up requests

Open AudioBookRequest and connect it to your hosted Prowlarr (http://prowlarr:9696, plus the API key from Prowlarr's Settings โ†’ General). AudioBookRequest sits behind your ElfHosted login; if you want people without one to make requests, ask in Discord about switching it to its own user accounts.

Full setup guide

The step-by-step setup is available to logged-in customers. Sign in to continue →

Apps that start switched off

Jackett arrives switched off, because most setups never need it. Turn it on (or off again) at store.elfhosted.com/my-account/apps. Nothing is lost by switching it off.

How do I access it?

Everything is on your dashboard at https://your-username.elfhosted.com. Directly:

Use the Audiobookshelf and Storyteller addresses in their phone apps.

Signed-in users see their own URLs

The addresses above show the general pattern. Sign in and these become your personal, clickable links.

What it doesn't do

  • No books are included, in either format. Bring your own, or connect providers and accounts of your own.
  • Storyteller needs both formats of the same edition, in the same folder. It won't find an EPUB that lives in a different app's library.
  • Read-along books take time to make. Transcription runs on our shared service, and a long book can take a while, especially when several are queued. Times vary, so we don't promise one.
  • Storage is yours to attach for a library of any size, using magic mounting.
  • Not one login for everything. The players and readers keep their own accounts so phones, e-readers and family members can reach them.

How do I get support?

  1. Each app's own page (linked above) covers it in more detail, along with its upstream project's documentation.
  2. For your ElfHosted setup, see the ElfHosted support options.

Your content, your responsibility

ElfHosted hosts the apps in this bundle. We do not supply content, accounts, or third-party credentials. You are responsible for ensuring that your use of these apps complies with applicable laws and our Acceptable Use Policy.