Hardware FixRecommendedDevice not working? Your driver may be the problemCheck updates for common hardware issues.Fix DriversOctober DealsAmazon USOctober deal check: compare before you payAmazon US: current deals, useful picks and tech finds.Check DealsPC HealthRecommendedCrashes, freezes, slowdowns? Check your PC nowSpot repairable issues before they interrupt work.Check PC×
Skip to content
World desk9 min

How to Self-Host Audiobookshelf on a VPS with Docker, HTTPS and Reliable Backups

A practical Audiobookshelf VPS guide covering Docker Compose, persistent volumes, local SQLite storage, reverse-proxy HTTPS, VPN access, FFmpeg and backups.

Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The dependable way to self-host Audiobookshelf on a VPS is Docker Compose with four separate mounts: /config, /metadata, an audiobook directory and a podcast directory. Keep /config on storage local to the VPS because it contains Audiobookshelf’s SQLite database; do not put it on a NAS or other network filesystem. Audiobookshelf serves unencrypted HTTP, so use a TLS-terminating reverse proxy or a VPN before allowing remote users to connect.

This guide shows the deployment, storage layout, secure-access choices, media-format caveats, backup plan and upgrade procedure. It uses the project’s documented container image and port mapping, while leaving VPS size and provider selection to your library’s capacity and workload.

As an Amazon Associate I earn from qualifying purchases.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

What a VPS deployment needs

Audiobookshelf is a server application for audiobook and podcast libraries. On a VPS, the application runs in a container while your persistent data lives in host directories mounted into that container. Docker is the recommended way to run Audiobookshelf because the image packages the server and its media-processing dependencies in a repeatable unit.

  • A Linux VPS with enough local storage for the application, metadata and your media collection.
  • Docker Engine with the Docker Compose plugin.
  • Local, directly attached storage for the /config mount.
  • Separate host directories for audiobooks and podcasts.
  • A backup destination outside the VPS account or disk.
  • Either a reverse proxy with HTTPS or a VPN for remote access.

There is no universally correct VPS size in the Audiobookshelf documentation. Choose storage based on the size and growth rate of the media library, and check that the provider permits the intended workload. Local SSD performance matters for database access and scanning; capacity, snapshots and independent backups matter for the library’s survival.

#1 Best Overall
SnowSky/FiiO Echo MINI HiFi Bluetooth MP3 Player, 15Hours Playback, Independent Volume Control with 3.5mm/4.4mm Headphones Outputs (Black)
  • Boasting an IPS full-view color screen, retro-inspired dynamic UI, and classic button controls, the ECHO MINI blends vintage charm with modern functionality, evoking the golden age of portable cassette players.
  • Featuring Bluetooth 5.3 and SBC codec support, the ECHO MINI effortlessly pairs with Bluetooth headphones and speakers. With 8GB of built-in memory and support for up to 256GB TF cards, it unlocks a treasure trove of your favorite tunes.
  • Supports a wide range of audio formats, including DSD, WAV, FLAC, APE, MP3, M4A, and OGG. Enjoy seamless playback with instant access to your music library, offering unparalleled versatility.

Use a storage layout that protects the database

Four mounts keep application state and media understandable and recoverable:

Container path What it contains Recommended host location
/config SQLite database and migration scripts Local storage on the same VPS as Audiobookshelf
/metadata Metadata, cover and author images, logs and Audiobookshelf’s database backups Persistent local storage, included in application backups
/audiobooks Your audiobook files A dedicated media directory with its own backup job
/podcasts Your podcast files A dedicated media directory with its own backup job

The project specifically warns that /config must be directly accessible on the machine running the server. A SQLite database accessed over a NAS or another network filesystem can eventually become corrupted. Network storage may be appropriate for some media workflows, but it does not satisfy this requirement for /config.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Keep the mounts separate rather than nesting one inside another. A straightforward host layout is:

/srv/audiobookshelf/config
/srv/audiobookshelf/metadata
/srv/media/audiobooks
/srv/media/podcasts

Create equivalent directories on your VPS, or choose different absolute paths that fit its disk layout. The paths in the Compose file must match the directories you actually create; they are examples, not directories Docker will safely invent for you.

Deploy Audiobookshelf with Docker Compose

1. Create the project directory

SSH to the VPS and create a directory for the Compose project. Store the Compose file somewhere you will include in your server backup or configuration archive.

mkdir -p /srv/audiobookshelf
cd /srv/audiobookshelf

Create the persistent directories shown above, adjusting the media paths if necessary:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #2
FiiO M21 Android 13 Portable Music Player MP3 Walkman Snapdragon 680 4* CS43198 DAC Chips Hi-Res Audio DSD Bluetooth LDAC (Blue-Black)
  • A Brand-New Processor That Surpasses Competing Products — Qualcomm Snapdragon 680 Built on a 6nm process, it delivers superior performance and enhanced power efficiency. With 4GB+64GB storage and Android 13, it ensures smooth and seamless operation for all major music apps.
  • Patented Desktop Mode with 950mW High Power Output: When Desktop Mode is activated, the M21 operates entirely on external power, with the built-in battery neither charging nor discharging—effectively extending battery lifespan.
  • Quad CS43198 Matrix DACs, Fully Balanced 2-Stage Amplification: Featuring a 4-channel, 8-path fully differential output design, it unleashes its full potential with exceptional dynamic range and high noise immunity. The headphone amp adopts a 2-stage circuit design—the first stage handles voltage amplification while the second stage boosts current—ensuring pristine sound quality and rich detail.
  • Versatile Ports, High-Performance Output: Supports dual 3.5mm + 4.4mm headphone/LO outputs, equipped with independent line amplification circuits. Also supports SPDIF and USB Audio output, with SPDIF performance rivaling professional digital transports—reducing jitter by 70%.
mkdir -p /srv/audiobookshelf/config 
         /srv/audiobookshelf/metadata 
         /srv/media/audiobooks 
         /srv/media/podcasts

2. Save the Compose file

Create compose.yml with the documented image, port, mounts, time zone and restart policy:

services:
  audiobookshelf:
    image: ghcr.io/advplyr/audiobookshelf:latest
    ports:
      - "13378:80"
    volumes:
      - /srv/audiobookshelf/config:/config
      - /srv/audiobookshelf/metadata:/metadata
      - /srv/media/audiobooks:/audiobooks
      - /srv/media/podcasts:/podcasts
    environment:
      - TZ=UTC
    restart: unless-stopped

Replace every host-side path with a real directory on your VPS. The left side of each volume mapping is the host path; the right side is the path Audiobookshelf sees inside the container. The official example maps host port 13378 to the container’s HTTP port 80.

Set TZ to the IANA time zone you want timestamps and scheduled jobs to use, such as UTC or your region’s documented zone. Keep the four mounts distinct. Do not combine /config and /metadata into one anonymous volume if you want predictable backup and migration behavior.

3. Start the container

From the directory containing compose.yml, pull the image and start it in the background:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
docker compose pull
docker compose up --detach

Check the running service with docker compose ps and inspect startup messages with docker compose logs --follow. Stop following logs with Ctrl+C; that does not stop the container.

4. Complete the first-run setup

For a private initial test, open http://VPS_IP:13378 from a network that can reach the port and create the administrator account. This endpoint is plain HTTP, not an encrypted public service. Do not treat direct port exposure as the finished remote-access design.

Rank #3
Surfans F20 HiFi MP3 Player with Bluetooth 5.2, Lossless DSD FLAC High Resolution Digital Audio Player, High-Res Portable Music Player with 64GB MicroSD Card, Support up to 512GB
  • 1.[HiFi Lossless Sound with ESS DAC] Surfans F20 DAP is built with an ESS ES9018K2M DAC for clear, detailed high-resolution audio. It supports 32-bit/384kHz decoding, native DSD128, FLAC, WAV, APE, WMA, MP3 and more, giving you a portable HiFi MP3 player for serious offline music listening.
  • 2.[Bluetooth 5.2, Headphone Out & Line-Out] Enjoy flexible listening with Bluetooth 5.2 for compatible wireless headphones and speakers, or connect wired earphones through the 3.5mm headphone output. The dedicated 1.5V line-out also lets you connect this digital audio player to car AUX inputs, home audio systems or external amplifiers.
  • 3.[64GB Card Included, Expandable to 512GB] The F20 portable music player includes a 64GB micro SD card, so you can start building your music library right away. It supports expandable storage up to 512GB, making it ideal for large FLAC, DSD and lossless audio collections without relying on WiFi, apps or streaming subscriptions.
  • 4.[Up to 10 Hours Playback for Daily Use] With up to 10 hours of music playback, the Surfans F20 is made for commuting, travel, walking, office use and daily offline listening. Its compact size makes it easy to carry as a dedicated Hi-Res portable music DAP wherever you go.
  • 5.[Easy Physical Controls & Reliable Support] The F20 HiFi MP3 player features an ALPS scroll wheel and physical buttons for simple volume, playback and menu control. Folder-based browsing makes it easy to manage large music libraries, and Surfans customer support is ready to help if you have any questions.

When creating libraries, use the container paths, not the host paths. An audiobook library should point to /audiobooks; a podcast library should point to /podcasts. Audiobookshelf scans those paths from inside the container. A host path such as /srv/media/audiobooks will not work in the library picker unless it is also mounted at that container path.

Expose it safely: reverse proxy or VPN

Audiobookshelf does not provide built-in remote access and serves unencrypted HTTP. Put it behind a security boundary before using it over the internet.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Approach How users connect Certificate handling Operational trade-off
Reverse proxy Public hostname at the proxy, which forwards requests to Audiobookshelf The proxy terminates TLS and manages the certificate Convenient for users and shareable links, but the hostname is publicly discoverable and the proxy must be maintained
VPN Clients join a private network, then use the internal Audiobookshelf address No public certificate is required for the private path, although the VPN itself must be secured Less publicly exposed, but every phone, tablet or computer needs VPN configuration

Reverse-proxy design

Use a proxy such as NGINX or another TLS-capable server on the VPS or an adjacent host. The proxy should accept HTTPS, force HTTP-to-HTTPS redirection, forward requests to Audiobookshelf and pass WebSocket connections. The project’s native Linux example binds Audiobookshelf to 127.0.0.1 and proxies to that local address; the same boundary is useful with Docker.

For a single-host setup, you can bind the published port to localhost instead of every network interface:

ports:
  - "127.0.0.1:13378:80"

With that mapping, the reverse proxy on the VPS can reach Audiobookshelf locally while the container port is not directly reachable from the public network. If your proxy runs in another container, place both services on a private Docker network and avoid publishing Audiobookshelf’s port publicly where your proxy design allows it.

Configure the proxy with a valid certificate for your hostname, redirect plaintext requests to HTTPS, and enable WebSocket proxying. Test sign-in, library browsing, playback, and any live status features through the HTTPS hostname rather than assuming a basic page load proves the proxy is complete.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #4
JadeAudio/FiiO JM21 Android 13 Hi-Res Music Player MP3 with Snapdragon 680, Bluetooth WiFi USB DAC 12.5H Playtime (3+32g Sky Blue)
  • The world's first Snapdragon 680 portable HiFi player JM21: The Qualcomm Snapdragon 680, built on a 6nm advanced process, features an 8-core Kryo 265 architecture with a clock speed of up to 2.4GHz. This results in a significant performance boost, lower power consumption, and smooth, seamless operation.
  • Custom Android 13 open-source system: The deeply customized Android 13 open-source system offers smooth and seamless performance, allowing effortless control. It provides the freedom to install streaming apps like Spotify, Apple Music, and other applications as desired.
  • Dual flagship DACs, CS43198, with a powerful 700mW output drive: The JM21 features a fully balanced audio architecture, powered by two flagship Cirrus Logic CS43198 DACs paired with two high-performance SGM8262 operational amplifiers. Through audiophile-grade circuit design and tuning, the JM21 delivers a balanced output power of up to 700mW + 700mW, offering powerful drive and exceptional sound quality. It effortlessly powers headphones or large over-ear models with ease and authority.
  • At just 13mm thin and weighing only 156g, the device offers a comfortable one-handed grip that completely frees your pinky. With an impressive 12.5 hours of battery life, it ensures uninterrupted listening wherever you go, easily lasting from morning to night. Every listening session is a pleasurable experience without worrying about battery life.
  • The self-developed DAPS digital audio purification system, coupled with a fifth-generation FPGA and custom dual femtosecond crystal oscillators, ensures that both local playback on third-party music apps like FiiO Music and Apple Music, as well as output to an external USB DAC, maintain the original audio sampling rate. This guarantees lossless audio quality for a pristine listening experience.

VPN design

A VPN is appropriate when the library is for you or a small, controlled group. Restrict the VPS firewall and Audiobookshelf exposure to the VPN interface, then have clients connect to the VPN before opening the internal HTTP address. This avoids making the service publicly discoverable, but it shifts setup and support to each client device.

Media scanning and FFmpeg compatibility

Audiobookshelf uses FFmpeg and FFprobe to scan and parse audiobook files. The official Docker image includes FFmpeg 8, so the documented container is the simplest way to obtain the expected media-processing stack.

There is a specific compatibility trap with xHE-AAC. Scanning xHE-AAC can fail with FFmpeg 7 or lower. If a library contains those files and scanning reports decoder or probe errors, use one of these remedies:

What’s actually slowing this PC down?

Pick the symptom - the matching free tool is one click away.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
  • Re-encode the affected files to a broadly supported audio codec, keeping an untouched copy if the original matters to you.
  • Build and supply custom FFmpeg and FFprobe binaries with the required decoder support, accepting the maintenance burden of a custom image or installation.
  • Use the Docker image’s bundled FFmpeg 8 rather than downgrading the media-processing layer.

When troubleshooting a scan, first identify whether the failure is limited to xHE-AAC files or affects every file. A format-specific failure points to decoder support; a broad failure warrants checking the mounted path, file permissions and container logs.

Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Backups that can actually rebuild the service

Audiobookshelf’s database backup contains the database and cover images stored in metadata/. It does not include your media files, and it does not include covers stored alongside individual library items. A usable backup plan therefore has separate application and media parts.

Back up application state

  • Back up the /config directory, which contains the SQLite database and migration scripts.
  • Back up the /metadata directory, including metadata, images, logs and Audiobookshelf-created backups.
  • Retain the Compose file and the image tag used for the deployment so you can recreate the same container configuration.

Back up the media library independently

  • Back up /srv/media/audiobooks (or your equivalent host directory).
  • Back up /srv/media/podcasts separately.
  • Include any cover artwork stored with those library files; it is outside the database backup.

Copy backups off the VPS. A backup kept on the same disk or in the same account can disappear with the source after disk failure, account loss or an unrecoverable system event. Test that you can read the archive and restore a small sample before relying on it for an upgrade or migration.

Best Value
64GB MP3 Player with Bluetooth 5.3, Music Player with HiFi Sound for Sports Runners, 2.4" Screen MP3 Player Built in HD Speaker Voice Recorder FM Radio E-Book, Expanded Up to 128GB, Earphone Included
  • Large Capacity: This mp3 player is designed specifically for music enthusiasts. It has 64GB storage space, which can easily hold thousands of songs, and supports TF card expansion up to 128GB, so you don't need to change songs frequently or worry about insufficient storage space. (TF card is sold separately)
  • The latest version of bluetooth : mp3 player Equipped with the latest version of Bluetooth 5.3 MP3 player, which has better compatibility, signal stability, lower power consumption, longer connection distance, and stronger anti-interference ability. (Note: Bluetooth function only supports Bluetooth headset and Bluetooth speaker connection)
  • Easy to operate buttons: This reproductor mp3 has several intuitive buttons. Short press “One-Key Sound” can open the music mode, support breakpoint replay function, continue to play from the last exit position; independent volume key can be up and down toggle the precise adjustment of the volume; Short press “Lock Key” can lock the screen, simple and convenient.
  • High quality speakers:MP3 player Equipped with high-quality speakers that deliver clear, undistorted sound. No need to wear headphones, you can enjoy music, listen to books or play recording files directly through the speakers. Whether you're relaxing at home, traveling outdoors or sharing music with friends, the speakers will meet your listening needs.
  • Upgraded design: MP3 player Length 4.25 inches (10.85 cm), width 1.95 inches (4.96 cm), thickness 0.37 inches (0.95 cm), weight 80.7 grams, equipped with a 2.4-inch color screen to enhance the visual experience and ease of operation; metal alloy shell both durability and comfortable feel, fashionable appearance to adapt to the sports, commuting, travel and other scenarios, carry no burden.

Restore order

  1. Install Docker on the replacement VPS and recreate the host directories.
  2. Restore config and metadata to their host paths before starting Audiobookshelf.
  3. Restore the audiobook and podcast directories to the paths mounted at /audiobooks and /podcasts.
  4. Restore the Compose file, start the container and verify the administrator account, libraries and playback.

Upgrade without losing the ability to roll back

The documented Docker upgrade sequence is:

docker compose pull
docker compose down
docker compose up --detach

docker compose pull downloads the image selected by your Compose file. down removes the running container but leaves bind-mounted host data in place. Starting the service again recreates the container using the same mounts.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

The example uses the moving latest tag. Audiobookshelf also publishes edge and numbered release tags. A numbered tag is easier to review and roll back: change the image tag deliberately, pull that version, and keep the previous tag recorded until the upgrade is verified.

Before upgrading, confirm that your application and media backups are current and that the VPS has enough free disk space for the new image and any migration work. After the restart, check logs, sign in through the normal access path, open several libraries and play files from both media mounts. If the new version fails, stop it, restore the previous image tag in compose.yml and start the service again; the host data remains available because it is outside the container.

Docker compared with a native Linux installation

Docker is the recommended deployment path, but a native installation can be appropriate when you already operate Linux services directly and have a reason to manage every dependency yourself.

Decision point Docker Compose Native Linux
Upgrades Pull a tagged image and recreate the container; configuration is portable Upgrade the application and system dependencies yourself
FFmpeg behavior The documented image includes FFmpeg 8 You must manage the installed FFmpeg/FFprobe versions and decoder support
Migration Move the Compose file plus the four persistent directories Reproduce the service account, binaries, paths and system configuration
Network boundary Bind the port locally or use a private Docker network with the proxy The documented NGINX pattern binds the service to localhost and proxies HTTPS

Whichever method you choose, the database rule does not change: keep the SQLite files on directly accessible local storage, and back up media independently.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Troubleshoot the failures that matter most

The web page will not open

  • Confirm the container is running with docker compose ps.
  • Read recent startup output with docker compose logs.
  • Check that the VPS firewall and any cloud firewall allow the intended path. If you changed the mapping to 127.0.0.1, direct access from another machine is expected to fail; use the reverse proxy.
  • Verify that the proxy targets the correct local port and that its TLS certificate and hostname match.

Libraries are empty or files cannot be found

  • Confirm the library points to /audiobooks or /podcasts, not the host path.
  • Confirm the corresponding host directory is mounted in the Compose file and contains the files.
  • Check container logs for scan or permission errors.

The database behaves erratically after a storage change

Move /config back to local storage on the Audiobookshelf host. Do not run the SQLite database from a NAS or other network filesystem. Restore the most recent known-good application backup if corruption has occurred.

Specific files fail during scanning

Check the codec, especially xHE-AAC. FFmpeg 7 or lower may not scan those files successfully; use the FFmpeg 8 Docker image, re-encode the files or build custom binaries with the required decoder.

Playback works internally but not through the proxy

Verify HTTPS termination, the proxy’s WebSocket forwarding and the upstream address. Test the service locally first, then through the proxy hostname, so an application problem is not confused with a proxy-routing problem.

Pre-flight checklist

  • Docker Compose file saved with real, separate host paths.
  • /config and /metadata on persistent local storage.
  • Audiobook and podcast directories mounted independently.
  • Library paths set to /audiobooks and /podcasts inside the container.
  • Remote access protected by a TLS reverse proxy or VPN.
  • WebSocket forwarding tested if using a reverse proxy.
  • Application directories and media backed up separately.
  • Backups copied off the VPS and a restore sample tested.
  • Image tag recorded, with a rollback plan before upgrades.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Leave a Reply

Your email address will not be published. Required fields are marked *

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

More from the Wire

  1. World desk4 min
    How to Spot an AI Voice Scam Before Sending MoneyDon’t rely on how a caller sounds. Pause, call back through a known number, and verify the emergency with another trusted person before sending money.
  2. Mountain View desk4 min
    Google’s SynthID Detector: How to Check AI-Generated Images, Video and AudioGoogle’s SynthID Detector looks for an embedded watermark in supported images, video and audio. Here is what its results do—and do not—show.
  3. Redmond desk20 min
    How to create a link to File or Folder in Windows 11Windows 11 gives you several ways to point to a file or folder without moving or duplicating it. You can create a desktop shortcut,…
Recommended PC Tool
Recommended PC Tool
PC Slower Than It Used to Be?Free scan - under a minute
Outdated Drivers Are Slowing You DownFree scan - exact matches

Two free Windows tools

One Free Minute Could Fix That PC

Before you go - each of these free tools takes about a minute and tackles what quietly slows a Windows PC down.

Special offer. View Outbyte info, uninstall instructions, EULA, and Privacy Policy.