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.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

The dependable way to run Audiobookshelf on a VPS is Docker Compose with three kinds of persistent storage: /config for the SQLite database, /metadata for application data, and separate mounts for every audiobook and podcast directory. Keep /config on local storage attached to the Audiobookshelf host, then place the HTTP service behind a TLS reverse proxy or a VPN. Back up the media files independently because Audiobookshelf’s database backups do not contain them.

What the deployment needs

Audiobookshelf is a self-hosted server for audiobook and podcast libraries. On a VPS, the application runs in a container while your data remains on host directories mounted into that container. The official project identifies Docker as the recommended installation method. A basic deployment has one Audiobookshelf container, local persistent storage, and an access layer that adds encryption or private-network access.

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

Required components

  • A VPS with enough local disk for the application, metadata, and your media library.
  • Docker Engine with the Docker Compose plugin.
  • Local storage for /config; this directory contains the SQLite database and migration scripts.
  • A separate /metadata directory for metadata, cover and author images, logs, and application backups.
  • One host directory for each audiobook or podcast collection.
  • A reverse proxy with TLS certificates, or a VPN, if the server will be reached remotely.

The documentation does not prescribe a particular VPS company, plan, CPU, RAM amount, or price. Choose capacity from the size and growth rate of your library, and confirm that the provider permits the workload. Local SSD storage is preferable for the database and metadata because it avoids network-filesystem latency and locking problems.

Plan the VPS storage layout

Keep application state and media logically separate. A layout such as the following makes permissions, backups, and migrations easier:

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application:Upgraded attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Warranty & Support: Our Electric air duster comes with 5 years warranty and 24/7 customer service. During this period, if you have any questions,pls kindly feel free to contact us.
  • /srv/audiobookshelf/config — SQLite database and migration files.
  • /srv/audiobookshelf/metadata — metadata, images, logs, and Audiobookshelf-generated backups.
  • /srv/media/audiobooks — audiobook files.
  • /srv/media/podcasts — podcast files.

These are example host paths; create equivalent directories wherever your VPS stores data. The container mount points must remain separate rather than nested. Do not put the SQLite database on a NAS, NFS share, or other network filesystem. Audiobookshelf warns that /config must be directly accessible on the same machine as the server; network access can eventually corrupt SQLite.

Estimate capacity without guessing

There is no universal disk size for an Audiobookshelf VPS. Measure your existing audiobook and podcast folders, add room for future purchases and downloads, then reserve additional space for metadata, temporary files, snapshots, and at least one local staging copy of a backup. If the provider offers separate attached volumes, place /config and /metadata on storage local to the VPS and put large media on a volume that still appears as local block storage to the operating system.

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.

Install Docker and create directories

Install Docker Engine and its Compose plugin using the instructions for your Linux distribution. Verify both commands before deploying:

docker --version
docker compose version

Create the directories used by the Compose file and make sure the account that runs Docker can read the media and write application data:

sudo mkdir -p /srv/audiobookshelf/config
sudo mkdir -p /srv/audiobookshelf/metadata
sudo mkdir -p /srv/media/audiobooks
sudo mkdir -p /srv/media/podcasts
cd /srv/audiobookshelf

Use ownership and permissions appropriate to your VPS. Audiobookshelf must be able to write to /config and /metadata; it generally only needs read access to media unless you deliberately enable a workflow that modifies files. Avoid making the entire media tree world-writable.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

Create the Docker Compose deployment

Save this as compose.yml (or docker-compose.yml) and replace the example host paths with your real directories. The container listens on port 80; the example publishes it as host port 13378.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy 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

What each setting does

Compose setting Purpose Operational note
image Uses the Audiobookshelf image hosted in the GitHub Container Registry. latest follows the moving latest release; a pinned release tag is easier to review and roll back.
13378:80 Maps VPS port 13378 to the application’s HTTP port 80. Use a loopback-only binding when a reverse proxy on the same host is the only public entry point.
/config Persists the SQLite database and migration scripts. Keep it on local storage attached to this VPS.
/metadata Persists metadata, images, logs, and application backups. Backups here still do not contain your media files.
/audiobooks and /podcasts Expose media directories inside the container. Add another separate mount for each additional media collection.
TZ Sets the container time zone. UTC is a predictable choice; use the time zone you want displayed in logs and schedules.
restart: unless-stopped Restarts the service after a crash or host reboot. A manual stop remains stopped until you start it again.

If the reverse proxy is on the same VPS, change the port mapping to 127.0.0.1:13378:80. That prevents direct connections to the application from the public network while still allowing the proxy to reach it. If the proxy runs elsewhere, restrict port 13378 with the VPS firewall and permit only the proxy’s address.

Start the container and complete first-run setup

  1. From the directory containing the Compose file, pull the image: docker compose pull.
  2. Start it in the background: docker compose up --detach.
  3. Check the service state: docker compose ps.
  4. Inspect startup messages if the state is not running: docker compose logs --tail=200 audiobookshelf.
  5. From a trusted network, open http://your-vps-address:13378 when the port is intentionally reachable, or use the private proxy/VPN address.

The first-run wizard creates the administrator account and asks you to define libraries. When adding a library, select the path as it exists inside the container—for example, /audiobooks or /podcasts—not the host path /srv/media/audiobooks. The host-to-container mapping is what makes that content visible.

Expose Audiobookshelf safely

Audiobookshelf serves unencrypted HTTP and does not provide built-in remote access. Do not treat port 13378 as a secure internet-facing endpoint. Choose one of two access patterns.

Reverse proxy with HTTPS

A reverse proxy terminates TLS, obtains and renews the certificate for your hostname, and forwards requests to Audiobookshelf over the VPS’s local network. Keep the application bound to loopback or an internal container network, and publish only ports 80 and 443 at the proxy. The proxy must support WebSocket upgrade headers because interactive web sessions can use WebSockets.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

An NGINX-style configuration follows this boundary (certificate paths and the hostname are examples that you must replace):

server {
    listen 80;
    server_name books.example.net;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name books.example.net;

    ssl_certificate /etc/letsencrypt/live/books.example.net/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/books.example.net/privkey.pem;

    location / {
        proxy_pass http://127.0.0.1:13378;
        proxy_http_version 1.1;
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection 'upgrade';
    }
}

The official NixOS example uses the same architectural idea: bind Audiobookshelf to 127.0.0.1, force SSL at NGINX, proxy WebSockets, and forward to the local application. Adapt the syntax to your proxy and certificate manager rather than copying certificate paths blindly.

VPN-only access

A VPN keeps Audiobookshelf off the public internet. Clients first join your private network, then connect to the VPS’s VPN address and port. This removes public certificate and DNS exposure from the application, but every phone, tablet, browser, or household user needs a VPN client and valid credentials.

Access method Public discoverability Certificate handling Client setup
Reverse proxy with HTTPS Hostname and proxy ports are publicly reachable; Audiobookshelf itself remains behind the proxy. Proxy obtains, serves, and renews TLS certificates. Users open a normal HTTPS URL; no VPN client is required.
VPN Application is reachable only from the private network. Traffic is protected by the VPN tunnel; public HTTPS is not required for the private endpoint. Each client must join the VPN before opening Audiobookshelf.

Handle audio scanning and codec compatibility

Audiobookshelf uses FFmpeg and FFprobe to scan and parse audiobook files. The official Docker image includes FFmpeg 8, so the Compose deployment normally has the required tools without a separate package installation.

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

Scanning xHE-AAC can fail with FFmpeg 7 or lower. If a library contains xHE-AAC and the scan reports unsupported decoding, use one of the documented remedies:

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.
  • Re-encode the affected files to a broadly supported codec, preserving chapter and tag information where your conversion workflow allows it.
  • Build and install custom FFmpeg and FFprobe binaries with the decoder support required by those files, then ensure Audiobookshelf uses those binaries.

Do not assume that a file playing in one desktop player proves that the server’s scanner can parse it. Check the container’s FFmpeg version and the scan log before changing library paths or permissions.

Back up the database, metadata, and media separately

Audiobookshelf’s database backup covers the database and cover images stored in metadata/. It does not include your audiobook files, podcast files, or covers stored alongside individual library items. A restorable system therefore needs more than the in-application backup.

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

What to protect

Data Location Backup requirement
SQLite database and migration state /srv/audiobookshelf/config Use Audiobookshelf’s database backup and an additional filesystem or snapshot copy.
Metadata, logs, author images, and application backups /srv/audiobookshelf/metadata Copy off the VPS; retain versions so an accidental change is reversible.
Audiobooks /srv/media/audiobooks Back up independently; database backups do not contain these files.
Podcasts /srv/media/podcasts Back up independently, especially if downloads are not reproducible.
Covers stored with media items Inside the relevant audiobook or podcast directories Include the media directories because these images are outside the metadata backup.

A practical backup routine

  1. Schedule Audiobookshelf’s own database backup and verify that backup files appear under the metadata area.
  2. Copy /config, /metadata, and every media mount to storage outside the VPS account. A second directory on the same disk is not an adequate disaster-recovery copy.
  3. Keep multiple dated versions so a corrupted or accidentally deleted database is not the only version available.
  4. Periodically restore a copy to a temporary location or test host and confirm that the database opens and media paths can be remapped.
  5. Before a major upgrade, create a fresh application backup and confirm that the off-host copy completed.

Snapshots can speed recovery, but they are not a substitute for an independent copy. A failed disk, deleted VPS, or compromised account can destroy both the live data and a snapshot stored on the same infrastructure.

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

Upgrade safely and retain a rollback path

The documented Docker upgrade sequence is:

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

Run it from the directory containing your Compose file. Watch the logs after the container returns, sign in through the proxy or VPN, and trigger a library scan only after the service is healthy.

Choose an image tag deliberately

The project publishes latest, edge, and numbered release tags. latest is convenient but moves when a new release is published. A numbered tag lets you review a specific version, test it, and return to the previous tag if a migration or compatibility issue appears. The edge tag is intended for users who accept earlier access to changes and the associated upgrade risk.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
  1. Record the current image tag and application version.
  2. Back up /config, /metadata, and media before changing the tag.
  3. Change the image line to the target numbered tag, then run docker compose pull.
  4. Recreate the container with docker compose down followed by docker compose up --detach.
  5. Check logs, authentication, library visibility, playback, and scans.
  6. If the release is unsuitable, stop the service, restore the prior image tag, and use the verified backup if a database migration cannot be reversed safely.

Docker versus a native Linux installation

Docker is the project’s recommended route because the Compose file captures mounts, ports, environment, and restart behavior in one reviewable definition. A native installation can fit an administrator who already manages Linux services and packages, but it creates more host-level dependencies and makes migrations less portable.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Decision area Docker Compose Native Linux
Upgrade portability Pull a tagged image and recreate the container; host data remains in explicit mounts. Upgrade the service and host packages using distribution-specific procedures; exact commands are not established here.
FFmpeg behavior Official image includes FFmpeg 8. FFmpeg and FFprobe versions depend on the host distribution or your own builds.
Migration constraints Move the Compose file and the four data directories, then adjust paths and permissions. Reproduce service users, package versions, paths, and process supervision on the new host.
Configuration clarity Ports, mounts, time zone, and restart policy are visible in one YAML file. Settings are distributed across service files, packages, and host configuration.

Troubleshoot the failures that matter most

The container starts but the library is empty

  • Confirm that the library path uses the container path, such as /audiobooks, not the host path.
  • Run docker compose exec audiobookshelf ls -la /audiobooks and verify that files are visible inside the container.
  • Check host permissions on the mounted directory and read the scan errors in docker compose logs audiobookshelf.
  • Ensure the mount is a separate volume and was not accidentally hidden by a nested mount.

The database reports errors or behaves inconsistently

Confirm that /config is on local storage. A NAS or other network filesystem can cause SQLite locking and corruption over time. Stop the container before copying the directory for a filesystem-level backup, restore a known-good backup, and avoid moving the database back to network storage.

Remote access returns a 502 or fails during playback

  • Verify that the proxy target matches the binding: 127.0.0.1:13378 when the container publishes loopback, or the internal container address when the proxy shares a Docker network.
  • Check that the proxy forwards the Upgrade and Connection headers required for WebSockets.
  • Inspect both proxy logs and docker compose logs to determine whether the failure is TLS, routing, or the application.
  • If using a VPN, test the private address directly before changing proxy settings.

xHE-AAC files fail during scanning

Check the FFmpeg version in the image or host. FFmpeg 7 and lower may not scan xHE-AAC successfully. Re-encode the files or provide custom FFmpeg and FFprobe binaries with the required decoder support.

The VPS runs out of disk space

Check media growth, metadata, logs, old database backups, Docker image layers, and snapshots separately. Expand or attach local storage, move only the media mounts when appropriate, and keep /config local to the host. Never delete the only copy of a backup to reclaim space.

Pre-launch checklist

  • Docker Compose starts the official Audiobookshelf image with restart: unless-stopped.
  • /config is local, writable, and not on a network filesystem.
  • /metadata and every audiobook or podcast directory are mounted separately.
  • The first-run libraries point to container paths.
  • Port 13378 is firewalled or bound to loopback when a reverse proxy is used.
  • Remote traffic uses a TLS reverse proxy or a VPN instead of direct HTTP exposure.
  • FFmpeg compatibility has been checked for the formats in your collection.
  • Database, metadata, and media backups are copied off the VPS and have been tested.
  • The image tag and rollback procedure are documented 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.