mrkeyoor.com_
Fri 18 Sept 15:58 UTC
Self-Hostedevaluationupdated 18 Sept 2026

audiobookshelf review

Audiobookshelf is a server you run yourself for organizing, streaming, and sharing audiobooks and podcasts. It remembers each listener's position, downloads podcast episodes, edits book metadata, and gives the household web and mobile clients without handing the library to a commercial platform.

Verdict

Our Audiobookshelf run installed 429 packages in 9 seconds and passed all 354 tests, but npm audit still found 54 known vulnerabilities, including 3 critical. It is the best fit here for a technically comfortable household that wants audiobook progress, podcast downloads, and user permissions under its own control. Run it behind a maintained proxy, keep the four persistent paths backed up, and check the audit before exposing it beyond your home network.

We ran it

Lab card: what happened when we ran audiobookshelfScreenshot of audiobookshelf (audiobookshelf.org)
Install✓ · 9s429 packages · 112 MB
Buildn/ano build script
Tests✓ · 23s354 passed · 0 failed of 354 (mocha)
Known vulns543 critical · 33 high · 8 moderate · 10 low (npm audit)
Repo952 files~148,819 lines of source · 14.2 MB · 12 CI workflows · Dockerfile · tests dir

Answers from our run

Does audiobookshelf build from source?

Dependencies installed in 9 seconds (429 packages), and the project has no separate build step. We cloned commit 1e88ff0 into a clean Debian container with 3 CPUs and no project-specific setup.

Do audiobookshelf's tests pass?

Yes: 354 of 354 passed when we ran the project's own test command (mocha). Some failures need services or credentials a bare container does not have.

Does audiobookshelf have known vulnerabilities in its dependencies?

npm audit flagged 54 known advisories in the dependency tree, including 3 critical at the time of our run.

Who should not use audiobookshelf?

Operators whose dependency policy requires a clean audit now: our npm audit found 54 known vulnerabilities, including 3 critical and 33 high-severity findings.

What are the alternatives to audiobookshelf?

Jellyfin, Navidrome, Audioserve. Our Audiobookshelf run installed 429 packages in 9 seconds and passed all 354 tests, but npm audit still found 54 known vulnerabilities, including 3 critical.

Setup4/59-second install; Docker is clear, but storage and proxy details matter
Docs4/5Good install and proxy guidance; the source path has extra steps
Community5/514,371 stars with releases, issues, and pull requests active this week
Maturity4/5354 tests passed, though mobile and frontend transitions remain

Who it’s for

Households that want one private audiobook and podcast library across several users and devices.
Self-hosters who already understand containers, persistent volumes, reverse proxies, and backups.
Collectors who need chapter editing, metadata lookup, M4B merging, and progress sync in one server.
Podcast listeners who want automatic episode downloads alongside owned audiobooks.

Who it’s NOT for

Operators whose dependency policy requires a clean audit now: our npm audit found 54 known vulnerabilities, including 3 critical and 33 high-severity findings.
Vue contributors expecting frontend patches to be reviewed: the README says those pull requests are paused while the existing client is rewritten in React.
Reverse-proxy setups that forbid WebSockets or require an arbitrary subpath: WebSockets are required, and the only supported subfolder is /audiobookshelf.
iPhone users who need immediate access to the official beta: the README says its 10,000-place TestFlight program is full.
Storage setups that may renumber file inodes without a recovery test: issue 5568 reports downloads staying at HTTP 404 after rescans when stored inode values diverge.

Setup reality

Our sandbox installed 429 npm packages in 9 seconds and used 112 MB on disk. There was no build script or target, so that step was skipped. The test command finished in 23 seconds with all 354 Mocha tests passing. npm audit reported 54 known vulnerabilities: 3 critical, 33 high, 8 moderate, and 10 low.

The basic Docker route needs persistent audiobook, podcast, metadata, and config mounts. Source development calls for Node 20 and FFmpeg, plus separate root and client installs. A reverse proxy must pass WebSockets. The local server does not require a hosted account for a private media library.

Folder names and directory layout affect matching. The compose example says the config directory must stay on the same physical machine as the server. A proxied subfolder is fixed to /audiobookshelf, the iOS beta is full, and the current Vue frontend is being replaced rather than accepting new frontend pull requests.

Version 2.36.1 gives audiobooks a server built for them

Audiobookshelf v2.36.1 treats spoken-word media as the main job. It scans audiobook folders, streams common audio formats, remembers progress per user, downloads podcast episodes, and can merge tracks into an M4B. Chapter editing, metadata lookup, cover retrieval, open RSS feeds, and basic ebook reading sit beside playback. That focus matters when a general media server can play the files but does not understand the collection around them.

The checkout we measured was 14.2 MB, with 952 files and about 148,819 lines of source. That is a substantial application rather than a thin player wrapped around a folder. Multi-user permissions, automated backups, library watching, upload tools, Chromecast support, and web and mobile clients explain the size. They also create more state to protect than the audio files alone, especially playback positions and corrected metadata.

What happened when we ran it

Our sandbox installed 429 npm packages in 9 seconds, leaving 112 MB on disk. The repository did not expose a build script or target, so the build stage was skipped rather than counted as a pass. Its test command completed in 23 seconds. Mocha reported 354 passed and 0 failed out of 354, a clean result for the server code at commit 1e88ff0.

The uncomfortable result came from npm audit: 54 known vulnerabilities, split across 3 critical, 33 high, 8 moderate, and 10 low findings. The log supplied to us does not identify which packages are reachable in a deployed server, so we cannot turn that count into an exploit claim. A public deployment still needs the findings reviewed and either fixed, excluded with evidence, or accepted before it carries a household's accounts and listening history.

The 112 MB install still needs four persistent paths

Audiobookshelf used 112 MB after our root install, but the supported container carries the operational path most people should choose. The supplied compose file maps separate locations for audiobooks, podcasts, metadata, and config, then exposes host port 13378 to port 80 in the container. Its comment is unusually specific: config must live on the same physical machine as the server. That warning matters because the SQLite database sits there.

Source development has a wider set of chores than the 9-second root install suggests. The README calls for Node 20 and FFmpeg, a root install, another install inside client, a generated client, and a dev.js file with local paths. It recommends a VS Code dev container for the easier route. Reverse proxies must carry a WebSocket connection, and a subfolder works only at /audiobookshelf, not at an operator-selected path.

Version 2.36.1 does not settle playback and storage risks

Version 2.36.1 shipped on September 16, 2026, one day before the last recorded push. Its fixes include access checks on author endpoints, stricter accepted settings, safer cover formats, and SQLite binding installation under npm 12. That is current maintenance. It also means an older deployment may sit before security-relevant request handling changes, so release notes deserve the same attention as the container update itself.

Two open reports show why backups and recovery drills matter even after 354 tests pass. Issue 5188 describes an Android Auto sequence that reset a book's saved position. Issue 5349 reports the server exiting when a library scan hit SQLITE_BUSY alongside FFmpeg metadata work. A third, issue 5568, shows downloads returning 404 after stored inode values diverged, with repeated scans unable to repair them. These are reports, not proof that every server will fail the same way.

Twelve CI workflows support an active, crowded project

Our scan found 12 CI workflow files, a Dockerfile, a compose file, and a tests directory. GitHub recorded 14,371 stars, 1,190 combined issues and pull requests, and a push on September 17, 2026. Fresh issues and pull requests were still moving on September 18. The queue is large, but the recent release and activity do not look like an abandoned hobby server.

The client transition is the sharper contributor warning. The README says pull requests for the Vue frontend are not being reviewed or merged while a React rewrite is underway and says the replacement should arrive soon. Treat that wording as an aspiration, not a delivery date. The Android and iOS apps are still labeled beta, and Apple's 10,000-tester cap has left the iOS TestFlight full. Browser access remains the dependable common client.

All 354 tests passed, so the remaining decision is operational

A 354-of-354 test result makes Audiobookshelf easy to trial for the job it actually targets. Jellyfin is a better comparison when books share a server with films and television. Navidrome fits a music-first collection, while Audioserve suits someone who mainly wants folders exposed as streams. Audiobookshelf earns its extra moving parts when progress sync, chapters, podcast downloads, and separate user permissions will be used every week.

Our 23-second test run removes one source-level worry but leaves the 54 audit findings, fixed proxy rules, and mutable library database in your hands. Keep media, metadata, and config backups separate enough to restore. Pin a release instead of following an unexamined latest tag, test progress on the clients your household uses, and verify a download after storage changes. If those jobs sound reasonable, Audiobookshelf is the focused choice. If they sound like unpaid administration, a hosted audiobook service is the honest alternative.

Alternatives

ProjectWhat it isPick it when
Jellyfin gh↗A self-hosted media server for video, music, photos, and books.pick this instead when audiobooks are one part of a broader home media library.
Navidrome gh↗A lightweight self-hosted music server with Subsonic-compatible clients.pick this instead when music playback and a small server footprint matter more than book chapters or podcasts.
AudioserveA compact server for browsing and streaming personal audio collections.pick this instead when simple folder-based audio streaming is enough and multi-user library management is excess work.

What people are saying

  1. [github-trending] advplyr/audiobookshelf

Sources

  1. Audiobookshelf README
  2. Audiobookshelf v2.36.1 release
  3. Audiobookshelf Docker Compose example
  4. Issue 5188: playback progress reset report
  5. Issue 5349: SQLite busy server exit report
  6. Issue 5568: stale inode download report

More self-hosted reviews

jitsi-meet · celld · EchoMuse · versitygw · Octop · newsnow · the whole board →