Use Docker Compose on a VPS, keep Audiobookshelf’s /config database on local storage, persist /metadata and every media directory, and put the HTTP service behind a TLS reverse proxy or VPN. This layout follows Audiobookshelf’s documented deployment model and avoids the two most damaging mistakes: losing data in ephemeral containers and placing SQLite on a network filesystem.
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
The guide below covers the complete deployment path, secure remote access, storage design, FFmpeg compatibility, backups, upgrades, and recovery decisions. It uses the official image and a storage layout you can adapt to any Linux VPS that permits your intended media workload.
As an Amazon Associate I earn from qualifying purchases.
What you need before installing
Audiobookshelf is a server for audiobook and podcast libraries. On a VPS, the application runs continuously while your clients connect over the internet or through a private network. Docker is the recommended way to run Audiobookshelf, and Docker Compose makes the container, mounts, environment, and restart policy reproducible.
- A Linux VPS with Docker Engine and the Docker Compose plugin installed.
- Local VPS storage for the SQLite database and application state. The disk must be directly accessible to the host running Audiobookshelf; do not put
/configon a NAS, SMB share, NFS mount, or other network filesystem. - Enough capacity for your audiobook and podcast files, plus metadata, logs, temporary space, and backups. Audiobookshelf’s documentation does not prescribe a universal CPU, RAM, or disk size, so choose a plan according to your library and concurrent use rather than a generic minimum.
- A DNS name and a reverse proxy with TLS if the service will be reachable from the public internet, or a VPN if access should remain private.
- Directories on the VPS that you can back up independently from the container.
Keep the application and media paths on storage that survives container replacement. A container can be recreated at any time; only mounted host directories persist.
#1 Best Overall
- BLUE LIGHT BLOCKING GLASSES: Our blue light glasses for women boast UV400 protection, blocking harmful blue rays from computer screens. With these bluelight glasses women, you can enjoy gaming, reading, or watching TV with no worries of eye strain.
- EYE RELIEF: Our blue light glasses are engineered to reduce blurry vision or strain caused by prolonged screen time. These womens blue light glasses aid in better sleep by preventing blue light from disrupting your natural sleep cycle, helping you fall asleep faster and enjoy a more restful night's sleep, making them the perfect christmas present.
- COMFORTABLE: Crafted from durable material, our trendy blue light glasses for woman or blue light glasses men ensure long-lasting comfort. The high-transmittance lenses accessories, gamer gifts for men, help keep your eyes relaxed. Perfect stocking stuffers, gifts for gamers men, christmas gifts for men, halloween costumes.
- LIGHTWEIGHT: These clear blue light glasses feature a lightweight frame, meaning they’ll stay comfy for long-term wear. Perfect as blue blockers glasses for women or mens blue light glasses, these non-prescription fake glasses for men can be worn throughout the day. The blue light blocking glasses women feature polycarbonate HD lenses, which are anti-reflective and restore true color.
- WORRY-FREE PURCHASE: If you experience any issues, our support team is ready to assist you quickly. These are the perfect costume glasses for cosplay dressing up.
Design the VPS storage layout
Audiobookshelf uses separate mount points for application state and media. The official Compose pattern mounts host directories to /config, /metadata, /audiobooks, and /podcasts. Replace the example host paths with real directories on your VPS, and do not nest one mount inside another.
| Container path | What it contains | Where it should live | Backup treatment |
|---|---|---|---|
/config |
SQLite database and migration scripts | Local storage directly attached to the Audiobookshelf host | Include in application/database backups; never place it on network storage |
/metadata |
Metadata, cover and author images, logs, and Audiobookshelf backups | Persistent local VPS storage | Back up with the application data; copy backups off the VPS |
/audiobooks |
Your audiobook media library | Persistent media storage, local or otherwise supported by your host | Back up separately; database backups do not contain these files |
/podcasts |
Your podcast media library | Persistent media storage | Back up separately; database backups do not contain these files |
A practical layout is /srv/audiobookshelf/config, /srv/audiobookshelf/metadata, /srv/media/audiobooks, and /srv/media/podcasts. The names are not special; consistency and separate mounts are what matter. Ensure the Docker process can read the media directories and write the config and metadata directories.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Clear out junk files and repair common Windows errorsFree Scan →Install Audiobookshelf with Docker Compose
1. Create persistent directories
Log in to the VPS and create the directories represented in your Compose file. Create the parent paths first, then apply ownership and permissions appropriate to your Docker setup. Avoid placing these directories under a temporary directory that is cleaned during reboot.
sudo mkdir -p /srv/audiobookshelf/config /srv/audiobookshelf/metadata
sudo mkdir -p /srv/media/audiobooks /srv/media/podcasts
sudo mkdir -p /opt/audiobookshelf
cd /opt/audiobookshelf
The commands establish one directory for the Compose project and four persistent paths. If your VPS uses a different disk layout, substitute those paths consistently in every later step.
2. Create the Compose file
Create /opt/audiobookshelf/compose.yaml with the official image, host port 13378, container port 80, four mounts, a time zone, and an automatic restart policy:
Rank #2
- WINDEX GAMING WIPES: effortlessly clean all your gaming gear and gaming electronics in one easy step with our new Windex Gaming Wipes
- AMMONIA FREE: our ammonia-free formula is safe to use on all of your favorite gaming equipment like consoles, headsets, controllers, screens, keyboards, and more
- PRE-MOISTENED WIPES: each wipe instantly removes dust, dirt, and stubborn smudges and fingerprints leaving a streak-free shine
- ANTI-STATIC: great for cleaning and wiping down your gaming gear and electronics leaving behind no visible residue
- COMPACT RESEALABLE PACKAGE: store your pack of Windex Gaming Wipes anywhere in your home for whenever a quick and easy wipedown is needed
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
TZ=UTC is a safe default for a server; set it to the IANA time zone you actually need. The host paths above are an adaptation of the official example, not mandatory names. Keep each mount separate so a media path cannot accidentally mask /config or /metadata.
3. Pull and start the container
- From the directory containing
compose.yaml, rundocker compose pullto download the image. - Start it in the background with
docker compose up --detach. - Check the service state with
docker compose psand inspect startup messages withdocker compose logs --follow audiobookshelf. Stop following logs withCtrl-C; that does not stop the container. - Open
http://your-vps-address:13378from a trusted network for the initial setup. The port is HTTP and should not remain a public, unencrypted endpoint once remote access is configured.
After the first start, verify that files appear in the expected host directories. A populated /config and /metadata confirms that state is being written outside the container. Add your audiobook and podcast libraries using the corresponding container paths, not the host paths: Audiobookshelf should see /audiobooks and /podcasts.
Expose Audiobookshelf safely
Audiobookshelf does not provide built-in remote access and serves unencrypted HTTP. Do not forward port 13378 directly to the public internet as your long-term arrangement. Choose a reverse proxy or a VPN boundary.
Reverse proxy with HTTPS
A reverse proxy accepts the public HTTPS connection, obtains and renews a certificate, and forwards traffic to Audiobookshelf over the private host or container network. The official NixOS example binds Audiobookshelf to 127.0.0.1, forces SSL in NGINX, proxies WebSocket connections, and forwards to the localhost service. The same separation is appropriate for Docker.
- Create a DNS record such as
audio.example.netpointing to the VPS address. - Run the proxy on the VPS or on a trusted proxy host, and configure certificate issuance for that name.
- Keep Audiobookshelf reachable only from the proxy network when possible. If the proxy runs on the same host, bind the published port to loopback (for example,
127.0.0.1:13378:80) instead of all interfaces, or remove the public port publication and attach both services to an internal Docker network. - Forward normal HTTP requests and WebSocket upgrades to Audiobookshelf. WebSocket forwarding matters for live client interactions; a proxy that handles only ordinary HTTP can appear to work while realtime features fail.
- Redirect HTTP to HTTPS at the proxy and use the HTTPS hostname for every client.
The proxy terminates TLS; Audiobookshelf itself still speaks HTTP behind that boundary. Protect the proxy host, certificate keys, and administrative endpoints as carefully as the application.
Free tools Windows power users keep installed
One-click scans. No signup required.
Rank #3
- Ergonomic & Adjustable Design: Fight "text neck" and improve your posture. Designed for comfort, it offers an adjustable height (7.1in-8.5in) (1.4in adjustable range) and angle (5°-85°) Please note: cell phone stand is only 9 inches tall—the length of a standard pencil
- Without blocking subtitles Perfect for office desk Tiktok Face Time Zoom video—this is the ultimate kitchen desk essential for phones! Perfect viewing experience while reducing neck back strain, A must-have for gamers streamers desk, and anyone who values both style and support!
- Sleek & Stable Design fits Otterbox Case: Say goodbye to bent cables, tangles, and tip-overs! LISEN’s stylish adjustable desk phone holder features a built-in charging hole and smart cable management, keeping your phone secure and your workspace clutter-free cool gadgets for men
- ANTI-SLIP DESIGN free hands: The under 10.00 items easy gadgets back and the bottom of this kitchen essentials for women are fully covered by anti-skid silicone, which LISEN stand up desk decor can provide maximum protection device from any scratches and slides
- Your Perfect Viewing Companion:If your product arrives damaged or breaks within 365 days, reach out to LISEN for a quick and hassle-free solution. Struggling with assembly, like tightening the screw? We’ve got your back! Your experience matters to us. (Product including: phone Holder stand*1, screw*1, hexagon screwdriver*1, specification*1)
VPN-only access
A VPN avoids public discovery: clients first join your private network, then connect to the Audiobookshelf address over that network. This removes the need to publish a public application endpoint and can reduce certificate-management work, but every phone, tablet, computer, or streaming device needs a compatible VPN client and a working tunnel. A VPN is a good fit for a household or small group that controls its devices; a reverse proxy is usually simpler for users who need ordinary browser and app access from varied networks.
| Access method | Public discoverability | Certificate handling | Client setup | Best fit |
|---|---|---|---|---|
| Reverse proxy | Public hostname and port 443 at the proxy | Proxy obtains and renews TLS certificates | Use the HTTPS URL; no separate tunnel | Multiple users or devices on changing networks |
| VPN | Application remains private to VPN members | Can use private-network addressing; public TLS is not required for the service boundary | Install and authenticate a VPN client on each device | Private household or team access |
Choose storage for a real media library
Storage is usually the limiting factor on a media VPS. Prioritize local SSD performance for /config and /metadata, because the SQLite database and metadata operations are latency-sensitive. Media capacity must match the size and growth rate of your audiobook and podcast collection. Check that the VPS provider permits the intended storage and media workload; Audiobookshelf documentation does not endorse a particular vendor or plan.
- Keep
/configon the VPS host’s local filesystem. Even if media is mounted from another system, do not move the SQLite database to that network filesystem. - Use a filesystem with enough free space for library scans, cover art, logs, and temporary operations in addition to the media itself.
- Separate media from application data when practical. A full media disk should not prevent SQLite writes or metadata updates.
- Prefer a plan with snapshots or a documented backup mechanism, but treat snapshots as an additional recovery option, not a substitute for an off-server copy.
Handle FFmpeg and file compatibility
Audiobookshelf uses FFmpeg and FFprobe to scan and parse audiobook files. The official Docker image includes FFmpeg 8. Scanning xHE-AAC can fail with FFmpeg 7 or lower because the required decoder support may be absent.
If an xHE-AAC file will not scan
- Confirm the container image and its FFmpeg version from the container logs or an interactive check. Do not assume the host’s FFmpeg installation is the one Audiobookshelf uses.
- If the image is using FFmpeg 8, retry the scan and inspect the file for other encoding or corruption problems.
- If you are running FFmpeg 7 or lower, re-encode the file to a broadly supported codec while preserving the original elsewhere, or build custom FFmpeg and FFprobe binaries with the decoder support Audiobookshelf requires.
- Rescan the affected library after replacing or converting the file.
Using the maintained Docker image is the simplest way to receive the documented FFmpeg 8 environment. Native installations must manage their own FFmpeg and FFprobe versions and therefore have a wider compatibility surface.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteBack up what Audiobookshelf cannot replace
Audiobookshelf’s database backups include the database and cover images stored in metadata/. They do not include media files, and they do not include covers stored alongside library items. A recoverable deployment therefore needs two backup sets.
Rank #4
- Easy Installation: Our gaming lights have been designed to enhance your entertainment experience. Simply position the led light bar next to your TV or game console to create a game room environment with ease. They come with USB power and a 60 inch cord for direct mounting and mobility
- Audio Syncing & Extensive Mode: The built-in high-sensitivity music sensor allows you to sync the TV led lights to your favorite music. Lights react and move to the beat of music, film and game audio, creating an incredible immersive sound and light experience – and all without the need for an additional hub. You can choose from 64+ patterns, including strobe, illusion, jump, energy, gradient, running, chasing, fluttering mode etc. Each mode can be applied to different scenes
- 64+ Chasing IC+RGB & W Effect: The independent control design of IC+RGB and white all-in-one multifunctional rgbw led bar lights monitor backlight allows you to easily switch the led lights for desk between IC+RGB and white to enjoy a variety of lighting effects, you can choose white lighting mode with high brightness for better illumination when working, etc. Choose IC+RGB lighting mode when you need to create an entertaining atmosphere for the light show, 16 million colours of Color changing rgb light bar let you dance to the beat and create a dynamic party atmosphere
- Dynamic and Dimmable Lights: 1%-full brightness free brightness adjustment gives you the flexibility to adjust dimmable led light bar for room decorations or a variety of occasions
- USB Powered: USB light bars for room can be powered by powernank, usb charger, TV, Monitor, laptop PC mainframe, making behind TV led lighting bar easy to install in any location.TV led lights are powered by the TV usb interface / PC mainframe, can be turned on/off synchronously with TV / PC
Application backup
- Back up
/config, which contains the SQLite database and migration scripts. - Back up
/metadata, including metadata, author and cover images, logs, and the application’s own backup files. - Copy generated backups off the VPS. A second copy on the same disk or account will be lost with that disk or account.
Media backup
- Back up
/srv/media/audiobooks(or your chosen host path) independently. - Back up
/srv/media/podcastsindependently. - Include covers stored with the media library, because they are outside the database backup scope.
Test restoration periodically on a separate directory or host. A backup is useful only if you can retrieve the files, start a compatible Audiobookshelf instance, and confirm that libraries and playback work.
Upgrade safely and keep a rollback path
The documented Docker upgrade sequence is:
docker compose pull
docker compose down
docker compose up --detach
Before upgrading, make a fresh copy of /config and /metadata and verify that media backups are current. Keep the Compose file under version control or save a dated copy so you know which image tag and mounts produced a working deployment.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Choose an image tag deliberately
The documentation lists latest, edge, and numbered release tags. latest follows a moving release, while a numbered tag can be reviewed and rolled back more predictably. For a production library, pin a numbered release after checking its notes, then change the tag intentionally when upgrading. If you use latest, schedule updates and monitor logs because the image can change between pulls.
If an upgrade fails
- Stop further changes and save the container logs.
- Confirm that the host mounts still point to the original
/config,/metadata, and media directories. - Restore the previous image tag in the Compose file and run the same pull, down, and up sequence.
- If the database migration has already run, restore the pre-upgrade application backup before attempting the older version again.
- Investigate the documented release notes and test the newer version on a copy before returning it to production.
Docker versus a native Linux installation
Both approaches can run Audiobookshelf, but they shift responsibility differently. Docker is the documented recommendation and packages a known FFmpeg environment. Native Linux can integrate with an existing service manager and filesystem layout, but upgrades and decoder dependencies become your responsibility.
| Decision point | Docker Compose | Native Linux |
|---|---|---|
| Official recommendation | Recommended deployment path | Supported example exists, but not the recommended default |
| Upgrade portability | Pull an image and recreate the container with the same mounts | Install and maintain application and system dependencies on the host |
| FFmpeg behavior | Official image includes FFmpeg 8 | You must provide and maintain compatible FFmpeg and FFprobe binaries |
| Migration constraints | Move the Compose file and persistent directories together | Reproduce service configuration, users, paths, and dependencies on the new host |
| Network boundary | Can share an internal Docker network with a reverse proxy | Can bind to localhost and proxy through NGINX |
For a new VPS, Compose minimizes environmental drift. Choose native installation only when you have a specific operational reason and are prepared to manage its dependencies and migration details.
Best Value
- Compatible with Wide Screens - To ensure compatibility with the dual monitor mount, your each monitor must meet three conditions at the same time: First, computer screens size range: 13 to 32 inches. Second, screen weight range: 4.4 to 19.8 lbs. Third, the back of the monitor screen must have VESA mounting holes with a pitch of 75x75mm or 100x100mm.
- Regarding the compatibility with desks - Your desk must meet three conditions at the same time: First, desk material: Only wooden desks are recommended, plastic or glass desks cannot be used. Second, desk thickness range: 0.59" - 3.54". Third, the bottom of the desk should not have any cross beams or panels, as this will interfere with installation. We recommend carefully checking that your desk and monitors meets all above conditions before purchasing.
- Dual C-Clamp Hold - Worried your dual monitors might wobble or slip? Our upgraded base uses a larger platform plus a dual C-clamp structure to lock the dual monitor arm firmly to your desk. Each arm safely keeps your screens steady while you type, click and game—no shaking, no sliding, just a clean and secure setup you can trust every day. It also provides Grommet Mounting installation choice, both options ensure stable and secure fixation for your 0.59" - 3.54" desk.
- Full-Motion Adjustment For Comfortable View - Pull the screen closer when you’re deep in a spreadsheet, push it back to watch videos, or rotate to portrait for coding — moving everything smoothly with just one hand. The monitor stand offers +85°/-50° tilt, ±90° swivel and 360° rotation. Raise your monitor up to 15.75″ to support a healthy sitting posture. Whether you’re working from home, gaming through the night, or switching between video calls and documents, getting the screens to your natural line of sight helps relieve neck, shoulder and back strain so you can stay focused longer with less fatigue.
- Keep Your Desk Organized: By lifting both screens off the desktop, this dual monitor stand opens up valuable space for your keyboard, notebook, docking station or a simple, clutter-free work area. Built-in cable management guides wires along the arms, keeping cords out of sight and out of the way. Enjoy a tidy, modern workstation that looks as good as it feels to use.
Troubleshoot the common failure modes
The container starts, but the library is empty
Check the library path inside Audiobookshelf. A host directory such as /srv/media/audiobooks is exposed to the container as /audiobooks; selecting the host path in the application will not work. Then verify that the Docker process can read the files and that the mount is not hidden by a nested or conflicting mount.
Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11Settings disappear after recreation
The container was likely started without the persistent /config and /metadata mounts, or the Compose file points to a different host directory than the previous deployment. Compare the running mounts with the file and stop before deleting any old data.
Database errors or corruption warnings
Confirm that /config is on local storage attached directly to the Audiobookshelf host. Move the database off a NAS or other network filesystem, restore the latest known-good application backup, and avoid running multiple Audiobookshelf instances against the same SQLite files.
Remote clients cannot connect
Test in layers: first the local HTTP endpoint, then the proxy’s internal upstream, then the public HTTPS hostname or VPN address. Check firewall rules, DNS, certificate status, and WebSocket forwarding. Do not diagnose a proxy failure by exposing the application port permanently.
Scanning fails for only some files
Inspect the codecs, especially xHE-AAC, and verify the FFmpeg version inside the container. Convert the affected files to a broadly supported codec or provide custom FFmpeg and FFprobe binaries with the necessary decoder support.
Pre-launch checklist
- Persistence:
/config,/metadata,/audiobooks, and/podcastsall map to intentional host directories. - Database safety:
/configis local to the VPS host, not on network storage. - Security: public users reach a TLS reverse proxy or a VPN, not raw HTTP on port
13378. - Proxy behavior: HTTPS redirect, certificate renewal, upstream forwarding, and WebSocket upgrades are working.
- Media access: the container can read every library directory, and the application uses container paths.
- Compatibility: the image’s FFmpeg support is adequate for your files, including any xHE-AAC content.
- Recovery: application data, media, and off-VPS copies have all been backed up, and at least one restoration has been exercised.
- Change control: the image tag, Compose file, and pre-upgrade backups are recorded before each upgrade.
The Bottom Line
For a dependable VPS deployment, run the official Audiobookshelf Docker image with separate persistent mounts, keep SQLite on local host storage, publish it through a TLS reverse proxy or VPN, and back up media independently from the database. Pin releases when you need predictable upgrades, and verify FFmpeg compatibility before importing less-common codecs.
Quick Recap
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.




