AudioBookshelf
Your own audiobook and podcast server - native apps, progress sync, one container. Audible you own.
One-click deploy, from $25/mo on a Miget plan.
AudioBookshelf is a self-hosted server for audiobooks and podcasts: a clean web player, native iOS and Android apps with offline downloads and progress sync, multi-user libraries, bookmarks, sleep timers, and built-in podcast search and auto-download. A single container with an embedded SQLite database.
PORT moves it straight onto Miget’s public port - no wrapper, no external database, nothing else to run. Point it at your audio on the library volumes and it scans, organizes, and serves them.
It is the antidote to renting your listening: Audible licenses you access that can be revoked, and podcast apps upsell subscriptions. AudioBookshelf serves a library you own, to every device, for the price of one small plan.
Upstream project: AudioBookshelf
#what you get
- Audiobooks and podcasts in one server
- Native iOS / Android apps with offline playback and sync
- Multi-user libraries, bookmarks, sleep timers
- Podcast search, subscriptions, and auto-download
- Single container, embedded SQLite - clean PORT=5000 fit
- GPL-3.0, ~no external dependencies
#topology
| Service | Role | Public |
|---|---|---|
| audiobookshelf | audio server + web player (:5000) | yes |
| volumes | config + metadata + audiobooks + podcasts | no |
#miget sizing
// this stack needs
512 MiB RAM · 77 GB disk · 1 service
Light on RAM (512 MiB is plenty); CPU only matters during the occasional transcode. The audiobooks volume is the variable - resize to your library. Keep replicas at 1 (SQLite).
Hobby - recommended fit
$25/mo
2 vCPU · 4 GiB · 80 GiB disk
Headroom for your own apps: 8 GiB at $49/mo
Professional - production
$169/mo
8 vCPU · 16 GiB · 100 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| AudioBookshelf on Miget ★ | 4 GiB plan | $25 | this whole stack, flat - no usage meters, and room left for your own apps |
| Audible | Premium Plus | ~$15 | $14.95/mo for one credit; you license, not own |
AudioBookshelf is free software; it serves a library you own outright, to every device.
#vs. other PaaS
Estimated monthly cost of running this exact stack (512 MiB RAM, 77 GB disk, 1 container) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $25 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Render | ~$26 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| Heroku | ~$25 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| Railway | ~$17 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$15 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
| DO App Platform | ~$11 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
audiobookshelf -
Set the required variable:
(none), first account created on first visit becomes admin
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/audiobookshelf
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
What does this save vs Audible?
Audible is about $14.95/month for one credit, and you only license listening rights that can change. AudioBookshelf is one ~$13/month plan serving a library you own outright, across every device.
Does it handle podcasts too?
Yes - search for and subscribe to podcasts, auto-download new episodes, and track progress alongside your audiobooks. It is a single server for both, with one app on your phone.
Is it really just one container?
Yes. AudioBookshelf embeds SQLite and bundles ffmpeg, so there is no external database or worker. Set PORT=5000 and point it at your audio volumes - that is the whole deploy.
Ship AudioBookshelf today
One compose stack, 512 MiB of RAM, from $25/month flat, and it runs on your laptop with the same files.