Complete guide for running Library Manager in Docker, with specific instructions for UnRaid, Synology, and standard Linux systems.
- Quick Start
- Understanding Docker Volumes
- Platform-Specific Setup
- Using Dockge
- Using Portainer
- Multiple Libraries
- Troubleshooting
git clone https://github.com/deucebucket/library-manager.git
cd library-managerOpen docker-compose.yml and change the audiobook path:
volumes:
# Change this line to YOUR audiobook location
- /path/to/your/audiobooks:/audiobooksdocker-compose up -dOpen http://your-server-ip:5757 in your browser.
- Go to Settings
- Set library path to:
/audiobooks(this is the path INSIDE the container) - Add your API key (Gemini recommended)
- Save and start scanning!
This is the most important concept to understand.
Docker containers are isolated - they cannot see your files unless you explicitly share them via volume mounts.
YOUR SERVER DOCKER CONTAINER
────────────────────────────────────────────────────
/mnt/audiobooks/ (invisible)
/home/user/books/ (invisible)
/media/storage/audio/ (invisible)
With volume mount in docker-compose.yml:
- /mnt/audiobooks:/audiobooks
/mnt/audiobooks/ → /audiobooks ✓
| Path Type | Example | Where to Use |
|---|---|---|
| Host path | /mnt/user/media/audiobooks |
docker-compose.yml (left side of :) |
| Container path | /audiobooks |
Settings page in the web UI |
❌ WRONG: Skip volume mount, type host path in Settings
Result: "Path doesn't exist" error
✅ RIGHT: Add volume mount in compose, use container path in Settings
UnRaid stores shares at /mnt/user/sharename.
docker-compose.yml:
volumes:
# UnRaid user share
- /mnt/user/media/audiobooks:/audiobooks
# Or direct disk path
- /mnt/disk1/audiobooks:/audiobooks
# Data persistence
- /mnt/user/appdata/library-manager:/dataSettings page: Set library path to /audiobooks
Tips:
- Use
/mnt/user/paths for shares (recommended) - Use
/mnt/diskX/for direct disk access - Store app data in
/mnt/user/appdata/for easy backups
Synology volumes are at /volume1/, /volume2/, etc.
docker-compose.yml:
volumes:
# Synology shared folder
- /volume1/media/audiobooks:/audiobooks
# Data persistence
- /volume1/docker/library-manager:/dataSettings page: Set library path to /audiobooks
Tips:
- Find your volume number in Control Panel → Shared Folder
- Create a
dockershared folder for app data - Use Docker package from Package Center, or install via SSH
docker-compose.yml:
volumes:
# Your audiobook directory
- /home/username/audiobooks:/audiobooks
# Or mounted drive
- /media/storage/audiobooks:/audiobooks
# Data persistence (same directory as compose file)
- ./data:/dataSettings page: Set library path to /audiobooks
Tips:
- Use absolute paths (starting with
/) - Make sure the user running Docker can read/write the audiobook directory
./datacreates adatafolder next to your docker-compose.yml
Docker Desktop handles path translation automatically.
Windows docker-compose.yml:
volumes:
# Windows path (note the forward slashes)
- C:/Users/YourName/Audiobooks:/audiobooks
# Or WSL path
- /mnt/c/Users/YourName/Audiobooks:/audiobooks
- ./data:/dataMac docker-compose.yml:
volumes:
- /Users/yourname/Audiobooks:/audiobooks
- ./data:/dataTips:
- Docker Desktop must have access to the drive (Settings → Resources → File Sharing)
- Use forward slashes even on Windows
- Performance is better with WSL2 backend on Windows
Dockge is a Docker compose manager with a nice UI.
- In Dockge, click + Compose
- Give it a name:
library-manager - Paste this compose content:
version: "3.8"
services:
library-manager:
build: https://github.com/deucebucket/library-manager.git
container_name: library-manager
restart: unless-stopped
ports:
- "5757:5757"
volumes:
# CHANGE THIS to your audiobook path
- /mnt/user/media/audiobooks:/audiobooks
- ./data:/data
environment:
- TZ=America/Chicago- Click Deploy
- Access at http://your-server:5757
- Go to Stacks → Add Stack
- Name:
library-manager - Select Repository and enter:
- Repository URL:
https://github.com/deucebucket/library-manager - Compose path:
docker-compose.yml
- Repository URL:
- Under Environment variables, you can override settings
- Click Deploy the stack
Paste the compose content directly and edit the volume paths.
You can mount multiple audiobook folders:
volumes:
# Multiple libraries
- /mnt/disk1/audiobooks:/audiobooks
- /mnt/disk2/more-audiobooks:/library2
- /mnt/disk3/old-audiobooks:/library3
# Data persistence
- ./data:/dataThen in Settings, add all paths (one per line):
/audiobooks
/library2
/library3
Cause: You entered a host path in Settings instead of the container path.
Fix:
- Check your docker-compose.yml volume mount
- Use the RIGHT side of the
:in Settings (e.g.,/audiobooks)
Cause: Container user can't read/write your audiobook files.
Fix for Linux:
# Find your user/group IDs
id
# Make sure audiobook folder is accessible
chmod -R 755 /path/to/audiobooksFix for UnRaid: Files should be accessible by default. Check share permissions.
Check logs:
docker logs library-managerCommon issues:
- Port 5757 already in use → Change to
5061:5757 - Volume path doesn't exist → Create the directory first
- Syntax error in compose file → Validate YAML
- Check container is running:
docker ps - Check port mapping:
docker port library-manager - Try
http://localhost:5757if on same machine - Check firewall allows port 5757
Cause: Data volume not mounted correctly.
Fix: Make sure ./data:/data is in your volumes and the data folder exists:
mkdir -p data
docker-compose down
docker-compose up -dDocker doesn't auto-refresh mounts. If you add new audiobooks:
- They should appear automatically (no restart needed)
- If not, check the host path is correct
- Run a new scan from the web UI
| Variable | Default | Description |
|---|---|---|
TZ |
UTC |
Timezone (e.g., America/New_York) |
DATA_DIR |
/data |
Where config/database are stored |
cd library-manager
git pull
docker-compose build --no-cache
docker-compose up -dOr with Dockge/Portainer, redeploy the stack.
- GitHub Issues: Report a bug
- Check logs:
docker logs library-manager - Enter container:
docker exec -it library-manager /bin/bash