Repository navigation
Installing on Unraid
The container is starf0x/my-audiobook-collection:latest, built for amd64 and
arm64. The quickest route is the template, which fills the whole Add Container
form for you and makes updating one click afterwards.
/boot/config/plugins/dockerMan/templates-user/my-My-Audiobook-Collection.xmlis not just the shipped template — from the moment you press Apply, it is also where Unraid keeps your settings for this container: ports, paths, password, API key. Copying the repository's copy over it again replaces all of that with empty defaults, and the next update then recreates the container without its paths.So: copy it in for a first install. After that, change settings in Unraid's own form (Docker → the container → Edit), never by copying the file again. Nothing in
/dataor in your audiobooks is affected either way — see Troubleshooting if it has already happened.
-
On a server that does not have the container yet, copy
my-My-Audiobook-Collection.xmlfrom the repository into/boot/config/plugins/dockerMan/templates-user/. From the Unraid terminal:cd /boot/config/plugins/dockerMan/templates-user/ wget https://raw.githubusercontent.com/Starf0x/my-audiobook-collection/main/my-My-Audiobook-Collection.xml -
Docker → Add Container, and pick My-Audiobook-Collection under User templates in the dropdown at the top.
-
Check the settings it filled in:
| Setting | Default | What it is |
|---|---|---|
| WebUI Port | 8523 |
Change it if something else already uses the port. The WebUI link follows whatever you set. |
| Appdata |
/mnt/user/appdata/my-audiobook-collection → /data
|
The database and the cover images. Keep this on fast storage. |
| Audiobooks |
/mnt/user/Audiobooks → /audiobooks
|
Your collection. Leave it read/write if you want to write tags, move or delete. |
| Import folder | empty → /import
|
Where new audiobooks arrive. Leave it empty if you never import. |
| User ID / Group ID |
99 / 100
|
Who the app writes as — nobody:users, who own your shares. Leave them: without them it runs as root, and the folders it creates are ones you are refused permission to write in. |
| File mode mask | 000 |
The mode of what it creates. 000 is what an Unraid share normally is. |
| Admin password | empty | Guards everything that changes the collection, and the only place it is set. See Sharing with others. |
| Google Books API key | empty | For looking up missing metadata, and the only place it is set. See Metadata and tags. |
- Apply. Unraid pulls the image and starts it.
- Open the WebUI, or
http://TOWER-IP:8523directly.
The two variables are masked in the form, so the password and the key are not shown back to you as plain text.
- The app has no administrator yet, and until it has one nothing in it opens.
The page says so and asks for a name and a password of at least eight
characters; that account is the one that scans the library, changes what is in
it and approves everybody else. It is kept in the app's own database, hashed.
Setting Admin password (and
ADMIN_USER) on the container overrides it, which is also the way back in if that password is ever forgotten. -
Settings ▾ → Library and maintenance → under Library folders, press Browse…, walk to
/audiobooks, press Use as library, then Save. Note that you are browsing the container's view of the disk:/audiobooks, not/mnt/user/Audiobooks. - Scan library. A bar at the bottom of the page shows the folder being read and the count so far. A large share takes a few minutes the first time.
- Genres appear in the left column as they are found.
If /audiobooks also holds folders that are not genres — downloads, incomplete
books, a _Temp — do not add /audiobooks itself. Add the genre folders one by
one and tick Is a Genre behind each. Setting up your library explains why.
The app tells you when there is one. A red dot appears on the icon in the top-left corner, and Settings ▾ → Library and maintenance → Version says which version is running and which one is out.
It stops there on Docker. Updating an image is pulling a new one, which is the host's job — so the Version line says exactly that instead of offering a button it could not honour, and the Install the update entry in the Settings menu is not shown at all. The dot is the notice; the click below is the update.
Because the container came from a user template, that update is one click.
- Unraid names a user template after the container it belongs to,
my-<container name>.xml, and the<Name>inside the file has to match that name as well. That pairing is what makes the Docker tab treat the container as managed. If you rename the container, rename both. - Force update lives in the Docker tab's Advanced View: flip the toggle at the top right and the container row gains a version column while the context menu gains Force update. In Basic View neither is shown.
Updating never touches /data, so users, positions, listened marks and covers
survive. It never touches your audiobooks either.
What an update can lose is the container's own configuration, but only if the template file was overwritten in the meantime — see the box at the top of this page, and Troubleshooting for putting it back.
Any Docker host will do. With compose:
services:
audiobooks:
image: starf0x/my-audiobook-collection:latest
container_name: my-audiobook-collection
ports:
- "8523:8523"
environment:
ADMIN_PASSWORD: "" # both may be left out; neither has a field in Settings
GOOGLE_API_KEY: ""
volumes:
- ./data:/data
- /mnt/user/Audiobooks:/audiobooks
- /mnt/user/Audiobooks/_Incoming:/import
restart: unless-stoppedOr in one line:
docker run -d --name my-audiobook-collection -p 8523:8523 \
-v /mnt/user/appdata/my-audiobook-collection:/data \
-v /mnt/user/Audiobooks:/audiobooks \
starf0x/my-audiobook-collection:latest
Inside the container the app listens on 8523; map whatever host port you like
to it. PORT can move the inside one as well, but there is rarely a reason to.
![]()