Audiobookshelf: A Self-Hosted Server for Audiobooks, Podcasts, and Ebooks
Self-hosted audiobook and podcast server. Kindle) Open RSS feeds for podcasts and audiobooks Is there a feature you are looking for?
At a glance
- What is it?
- Audiobookshelf is a self-hosted server for audiobooks and podcasts with multi-user support, metadata management, and basic ebook reading. This review covers its architecture, setup, limitations, and how it compares to alternatives.
- Who is it for?
- Adopt Audiobookshelf if you want a free, open-source, self-hosted server for audiobooks and podcasts with multi-user progress sync, metadata fetching, and built-in ebook support. Avoid it if you need a mature ebook management system, if you rely on the Vue frontend for custom modifications (since it is being rewritten), or if you cannot tolerate the fixed subfolder path for reverse proxies.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly JavaScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on November 14, 2026, and from our analysis. They are not legal advice.
Star history
- advplyr/audiobookshelf15,005 ★ · +1,258
| Repository | 2026-07-28 | 2026-11-14 |
|---|---|---|
| advplyr/audiobookshelf | 13.7k | 15k |
1,258 Stars in the last 109 days, measured from the daily GitHub snapshot. Compare with other projects
Editorial analysis
What Audiobookshelf Solves and Who It Is For
Audiobookshelf addresses a recurring problem for people who own large collections of audiobooks and podcasts: how to stream them from your own hardware without relying on commercial cloud services. The README describes it as a self-hosted audiobook and podcast server. The target user is someone who already runs a home server or a NAS, who is comfortable with Docker or Node.js, and who wants fine-grained control over their media library. It is not aimed at casual listeners who prefer a managed service; it requires ongoing maintenance and some technical setup. The project also targets users who want to listen across devices while keeping per-user progress, which the README lists as a core feature. For podcast listeners, it offers search and auto-download of episodes, which turns the server into a personal podcast aggregator. The inclusion of basic ebook support (epub, pdf, cbr, cbz) and a send-to-Kindle feature broadens its appeal beyond pure audio, making it a one-stop media hub for readers and listeners alike.
How It Works: Streaming, Metadata, and Library Detection
Audiobookshelf works by scanning a directory structure on your server and treating folder and file names as meaningful metadata. The README warns that directory structure and folder names are important, and it points to library documentation for supported conventions. This means the server does not rely solely on embedded tags; it uses the filesystem layout as a primary source of organization. Once scanned, it streams all audio formats on the fly. The server auto-detects library updates, so you do not need to manually re-scan after adding files. For metadata and cover art, it fetches from several external sources, and for chapter information it uses the Audnexus API. The merge function combines audio files into a single m4b, and it can embed metadata and cover images into the audio files themselves. The server also runs a progressive web app (PWA), which means the web client can be installed on devices. Chromecast support is built into the web app and the Android app, allowing casting to speakers. The system keeps progress per user and syncs across devices, which requires a backend database; package.json bundles sqlite3 bindings and the Dockerfile installs a nunicode-sqlite extension. The server can also open RSS feeds for podcasts and audiobooks.
Getting It Running: Installation and Development Setup
The README points to installation documentation on the official site, but it also provides a run-from-source guide. For development, the recommended path is a dev container. You need Docker Desktop and VSCode, then install the Remote Development extension and run the command `>Dev Containers: Rebuild and Reopen in Container`. That builds the environment automatically. For a manual setup, you need Node.js version 24 and FFmpeg installed. You must create a `dev.js` file in the project root, using `.devcontainer/dev.js` as an example, to hold configuration and paths unique to your environment. Then you build the client with these commands: `npm ci`, then `cd client`, `npm ci`, `npm run generate`, then `cd ..`. To run the server, use `npm run dev`. The client runs at `localhost:3333` by default, but the port can be changed in `dev.js`. If you modify the client, you must run `(cd client; npm run generate)` and restart the server. For live reloading during client development, you can run `(cd client; npm run dev)` as a separate instance. For production, the README points to the install docs, and the repository ships an example docker-compose.yml that runs ghcr.io/advplyr/audiobookshelf:latest with port mapping 13378:80. One notable constraint: if you use a reverse proxy with a subfolder, the path must be exactly `/audiobookshelf` and it is not changeable. Also, the server requires a WebSocket connection, so your reverse proxy must be configured to forward WebSocket upgrades.
Genuine Limitations and Failure Modes
Audiobookshelf has several limitations that may make it the wrong tool for some users. First, the ebook support is basic: it handles epub, pdf, cbr, and cbz, but it is not a full ebook management system. The README calls it basic, so do not expect advanced features like annotations, bookmarks, or complex metadata editing for ebooks. Second, the frontend is in transition. The README explicitly states that frontend pull requests for the existing Vue frontend are not being reviewed or merged because the frontend is being rewritten in React. This is a significant risk for anyone who wants to contribute or customize the UI; you may be working on a deprecated codebase. Third, the reverse proxy subfolder path is fixed at `/audiobookshelf`, which is a constraint if you want to serve the app under a different path. Fourth, the iOS beta is full due to Apple's 10k tester limit, so iOS users cannot easily test the app. Fifth, the project relies on external services for metadata and chapter lookup; if those services go down or change their APIs, features like chapter lookup will break. Finally, the README warns that folder names and directory structure are important; if you have a messy library, the server may misidentify books or fail to match metadata, leading to manual cleanup.
Real Alternative: Jellyfin and the Difference in Approach
The closest alternative to Audiobookshelf is Jellyfin, an open-source media server that handles video, music, and ebooks, but it does not specialize in audiobooks. Audiobookshelf, by contrast, is built specifically for audiobooks, with features like chapter lookup, merging into m4b, and per-user progress. If you already run Jellyfin and only occasionally listen to audiobooks, it might be sufficient. But if audiobooks are a primary use case, Audiobookshelf's focused design gives a better out-of-the-box experience. Another alternative is Plex, but it is not fully open-source and requires a paid subscription for some features. The key difference is that Audiobookshelf is purpose-built, while Jellyfin is a generalist that you must bend to fit your needs.
Maintenance and Upgrade Cost
Audiobookshelf is under active development, with v2.37.2 released on 2026-10-23, and the project is not archived. The release cadence (v2.37.0 on 2026-09-28, v2.37.1 on 2026-09-29, v2.37.2 on 2026-10-23) suggests frequent updates, which means you should expect to upgrade regularly to get bug fixes and new features. The README notes that the frontend is being rewritten from Vue to React, which is a major architectural change that could introduce breaking changes in the UI or API. Upgrading may require re-testing your reverse proxy configuration, especially since WebSocket connections are essential. The project uses a `dev.js` file for development configuration, but production upgrades likely follow standard Node.js or Docker image updates, and the packaged server includes migration scripts under dist-server/server/migrations. The license is GPL-3.0, which means if you modify the server and distribute it, you must release your changes under the same license. This is relevant for organizations that want to embed Audiobookshelf in a proprietary product; that would not be allowed without open-sourcing the derivative work. For personal use, this is rarely an issue. The project also depends on external services like Audnexus for chapter lookup, so you must monitor the availability of those services. Backup is built-in with automated daily backups, which is a plus, but you should verify that the backup includes your database and metadata, not just the media files.
Point of View: The Trade-Offs You Should Accept
Audiobookshelf is a strong choice for a niche but active community, but it is not without trade-offs. The biggest trade-off is the frontend rewrite: the project is investing in React, but until that migration is complete, the Vue frontend is in a state of limbo. If you are evaluating this project for a long-term deployment, you should factor in the possibility of UI changes and potential regressions. The fixed subfolder path is another annoyance; if you want to serve the app under a custom path, you will need to use a subdomain or a different reverse proxy strategy. The reliance on directory structure for metadata means that your library organization is part of the system's correctness. This is a design choice that gives you control, but it also puts a burden on you to maintain consistent naming. The project's strength is its focus: it does audiobooks and podcasts well, and it does not try to be a video server. That focus is what makes it better than general-purpose media servers for this use case. But that focus also means it lacks features that a generalist might have, like video streaming or advanced ebook management. If you accept these trade-offs, Audiobookshelf is a capable tool.
Editorial conclusion
Adopt Audiobookshelf if you want a free, open-source, self-hosted server for audiobooks and podcasts with multi-user progress sync, metadata fetching, and built-in ebook support. Avoid it if you need a mature ebook management system, if you rely on the Vue frontend for custom modifications (since it is being rewritten), or if you cannot tolerate the fixed subfolder path for reverse proxies. Before deploying, verify that your audio file naming and directory structure conform to the library documentation, confirm that your reverse proxy supports WebSocket connections, and check the current status of the React frontend migration and any breaking changes in recent releases.
Frequently asked questions
Is audiobookshelf free?
Yes. The project describes itself as fully open source under the GPL-3.0 license, and that statement covers the Android and iOS apps as well, both of which are in beta.
how to install audiobookshelf
The repository prints no install command and sends you to the installation documentation at audiobookshelf.org. What it does ship is an example compose file using the image `ghcr.io/advplyr/audiobookshelf:latest` with the port mapping `13378:80` and four mounted volumes.
how to install audiobookshelf on windows
The repository carries Windows packaging scripts, `build-win` and `build-win-no-compress`, which use pkg against the `node24-win-x64` target, one compressing with GZip and one not. Installation steps themselves live in the hosted docs.
how to access audiobookshelf remotely
The reverse proxy section states that a websocket connection is required, so a proxy that buffers or blocks upgrades will break the app. If you serve it from a subfolder, that path must be `/audiobookshelf`, and the project says the value is not changeable.
What does an audiobookshelf do?
It is a self-hosted audiobook and podcast server that streams audio formats on the fly, searches for podcasts and auto-downloads episodes, tracks progress per user across devices, and opens RSS feeds for both podcasts and audiobooks.
Is an audiobookshelf worth it?
It gives multi-user support with custom permissions, per-user progress sync, library change detection, metadata backups, and m4b merging. Weigh that against the current state, where the Vue frontend is frozen for pull requests and the iOS beta is full at Apple's 10k tester limit.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/advplyr-audiobookshelf)Star history chart for your README
[](https://hysenlabs.com/projects/advplyr-audiobookshelf)Was this useful?