# Audiobookshelf can't see my audiobook folder (Docker, Windows, Mac)

> In Docker, Audiobookshelf only sees folders you map into its container. Map your audiobook folder to /audiobooks, recreate the container, then pick /audiobooks.

Source: https://soundleafapp.com/server/audiobookshelf-cant-see-folder/
Published: 2026-10-18

---

In Docker, Audiobookshelf's folder picker shows the folders inside its container, not the folders on your computer. A folder only shows up there once you map it into the container in the `volumes:` section. Then you pick the inside path, usually `/audiobooks`.

## Why doesn't my audiobook folder show up in Audiobookshelf?

A volume line has two sides, split by a colon:

```yaml
volumes:
  - /home/sam/Audiobooks:/audiobooks
  #  ^ on your computer   ^ what Audiobookshelf sees
```

The left side is the real folder on your computer. The right side is the name it gets inside the container. So in the library's folder picker, look for `/audiobooks`.

If the left side is wrong, Docker quietly creates an empty folder there, and Audiobookshelf finds nothing to scan.

## How do I add my audiobook folder in Docker?

1. Find the full path of your audiobook folder on the computer running Docker. For example `/home/sam/Audiobooks`, `/mnt/media/audiobooks`, `/volume1/audiobooks` on Synology or `/mnt/user/audiobooks` on Unraid.
2. Put it on the left side of a volume line in your compose file. Use the full path. A path like `./audiobooks` is read from the folder the compose file is in, which is easy to get wrong. With an existing compose file, only change the audiobook line and keep your `/config` and `/metadata` lines as they are.

   ```yaml
   services:
     audiobookshelf:
       image: ghcr.io/advplyr/audiobookshelf:latest
       ports:
         - 13378:80
       volumes:
         - /home/sam/Audiobooks:/audiobooks
         - /home/sam/Podcasts:/podcasts
         - /home/sam/abs/config:/config
         - /home/sam/abs/metadata:/metadata
       restart: unless-stopped
   ```

3. Recreate the container. In the compose file's folder, run:

   ```bash
   docker compose up -d
   ```

4. Check that the container can see your files:

   ```bash
   docker compose exec audiobookshelf ls /audiobooks
   ```

   You should see your author or book folders. If the list is empty, check that the folder on the left side of the volume line really holds your books, and that any network share is mounted.

5. In the web app, open **Settings** > **Libraries**, edit the library (or add a new one), and choose `/audiobooks` as its folder.
6. Save and scan the library.

To add a second folder, add another volume line, such as `/mnt/usb/more-books:/more-audiobooks`. Then add `/more-audiobooks` to the library as a second folder.

## I changed the volumes and nothing happened

A container keeps the folders it was created with. `docker restart` and the restart button in most Docker tools start the same container again, with the old folders.

- **Docker Compose:** run `docker compose up -d`. When the file has changed, it replaces the container with a new one.
- **`docker run`:** stop and remove the container, then run your command again with the new `-v` lines. Keep the same `/config` and `/metadata` lines so your library and settings carry over.
- **Portainer:** for a stack, edit it and click **Update the stack**. For a single container, use **Duplicate/Edit**, change the volumes, click **Deploy the container**, then **Replace**. A restart keeps the old folders.

Your books, settings and progress survive this, as long as `/config`, `/metadata` and your media are volumes. See [library empty after a Docker update](https://soundleafapp.com/server/audiobookshelf-library-empty-after-update/) if something goes missing.

## The folder shows up, but the books don't

The folder is there but the scan adds nothing, or only some books. Check these in order.

1. **Folder layout.** Each book needs its own folder. See [folder structure](https://soundleafapp.com/server/audiobookshelf-folder-structure/).
2. **Permissions.** The official image runs as root, so it can read almost anything. If you added `user: 1000:1000` (or your NAS runs it as another user), check what that user can do.

   - **Reading:** it needs read access to every file, and permission to open every folder down to the book folders.
   - **Writing:** if you want Audiobookshelf to save covers or uploads into the folder, it needs write access too.
   - **Checking:** `docker compose exec audiobookshelf ls -la /audiobooks` shows the owners and permissions at the top level. Check a book folder the same way if only some books are missing.

   [Running as a non-root user](https://soundleafapp.com/server/audiobookshelf-docker-non-root-user/) covers the `EACCES: permission denied` errors.
3. **A scan that stops partway.** See [Audiobookshelf won't add new books](https://soundleafapp.com/server/audiobookshelf-library-scan-not-adding-books/).

## How do I add audiobooks from a NAS or network share?

A network share is a folder on another device, like a NAS (a storage box on your network), that other computers can open. First mount the share on the computer that runs Docker, which makes it appear there as a normal folder. Then map that folder into the container like any other:

```yaml
volumes:
  - /mnt/nas/audiobooks:/audiobooks   # the share is mounted at /mnt/nas/audiobooks
```

A few things go wrong with shares:

- **The share isn't mounted yet at boot.** Docker starts the container before the share is ready and Audiobookshelf sees an empty folder. [Audiobookshelf stops working after a reboot](https://soundleafapp.com/server/audiobookshelf-not-working-after-reboot/) shows how to make Docker wait.
- **Who owns the files.** On a share mounted over SMB, the mount settings decide who owns the files. If the container runs as a non-root user, set the mount's owner to that user.
- **New books aren't picked up on their own.** Audiobookshelf watches folders for changes, but that often misses changes on network shares. Edit the library and open its **Schedule** tab to set an automatic scan.
- **Keep `/config` local.** The audiobooks can live on a share. The `/config` folder holds the database and must be on the machine that runs Audiobookshelf.

## Install Audiobookshelf on Windows

The official docs offer a Windows installer, made by the [audiobookshelf-windows](https://github.com/mikiher/audiobookshelf-windows) project. It needs Windows 10 64-bit or later, and doesn't need Docker.

1. Download the installer from the [audiobookshelf-windows releases](https://github.com/mikiher/audiobookshelf-windows/releases/latest) and run it.
2. Click the Audiobookshelf icon in the system tray (bottom right of the screen). From there you can open the server in your browser, start and stop it, set it to start when you sign in, and check for updates.
3. Create your admin account in the browser, at `http://localhost:13378`.
4. Add a library. The folder picker shows your Windows drives (`C:\`, `D:\` and so on), so pick your audiobook folder directly, like `D:\Audiobooks`.

The installer is the simpler choice on Windows, especially if Docker Desktop won't start. Docker Desktop on Windows needs hardware virtualization, which some PCs have turned off.

If you already run Docker Desktop on Windows, write the left side of a volume line with forward slashes: `C:/Users/Sam/Audiobooks:/audiobooks`.

Keep in mind: the [official backup docs](https://www.audiobookshelf.org/docs/documentation/server-management/backups) say a backup can only be restored on the same kind of install (Windows on Windows, Linux on Linux) without losing progress and metadata. The Windows install page suggests Docker if you plan to switch drives or operating systems later.

## Install Audiobookshelf on a Mac

There's no Mac app for the server in the official docs, which recommend [Docker](https://www.audiobookshelf.org/docs/documentation/install/docker) in general. On a Mac, [Docker Desktop for Mac](https://docs.docker.com/desktop/setup/install/mac-install/) is the way to run it.

1. Install Docker Desktop and start it.
2. Make a folder for the server, for example `~/audiobookshelf`, and save the compose file from the [Docker setup guide](https://soundleafapp.com/server/server-setup-docker/) in it.
3. Set the audiobook volume to your folder, for example `/Users/sam/Audiobooks:/audiobooks`.
4. Run `docker compose up -d` in that folder, then open `http://localhost:13378`.
5. Add a library with `/audiobooks` as its folder.

Docker Desktop can only see folders that are shared with it. By default it shares `/Users`, `/Volumes`, `/private`, `/tmp` and `/var/folders`. Your home folder is under `/Users`, and external drives are under `/Volumes`, like `/Volumes/MyDrive/Audiobooks:/audiobooks`. For any other place, add it in Docker Desktop under **Settings** > **Resources** > **File sharing**.

The server only runs while the Mac is awake and Docker Desktop is running. A Mac that sleeps is a server your phone can't reach.

## Why can't Audiobookshelf write to a folder in a Proxmox container?

Proxmox LXC containers are small Linux systems that share the host's disks. In an unprivileged one (the Proxmox default), the numbers that mark who owns a file are shifted between the container and the host. With the default mapping, root inside the container (user 0) is user 100000 on the Proxmox host, user 1000 is 101000, and so on. A host folder you hand to the container (a bind mount) keeps its host owners, so the container often sees it as owned by "nobody".

Audiobookshelf can usually still read files that everyone can read. Writing (covers, metadata files, uploads, podcast downloads) needs the folder to be writable by the shifted user on the host. The [Proxmox wiki on unprivileged containers](https://pve.proxmox.com/wiki/Unprivileged_LXC_containers) explains how to change the mapping or the folder's owner.

## What address do I open after the install?

On the server itself, `http://localhost:13378`. From a phone or another computer, use the server's IP address and the port, like `http://192.168.1.50:13378`. [What port does Audiobookshelf use?](https://soundleafapp.com/server/audiobookshelf-default-port/) and [what to type as your server address](https://soundleafapp.com/docs/server-address/) cover the details.
