Docker
Recommended
The published image bundles the server and a pinned web player; ffmpeg is included.
Only /data (database, config, certs) is
persisted. Updating the server or the bundled player is always a new image —
docker compose pull && docker compose up -d.
services:
audiosilo:
image: ghcr.io/kodestar/audiosilo-server:latest
restart: unless-stopped
ports:
- "8080:8080"
volumes:
- ./data:/data # db, config, certs (first run prints admin creds once)
- /srv/audiobooks:/library:ro
environment:
PUID: "1000" # owner of /data (Unraid: 99)
PGID: "1000" # group of /data (Unraid: 100)
AUDIOSILO_WEB_DIR: /app/web
# AUDIOSILO_PUBLIC_URL: "https://books.example.com" # used in QR/invite links
# AUDIOSILO_TLS_MODE: "off" # behind a TLS-terminating proxy docker compose up -d
docker compose logs # first run prints the admin password + auth code ONCE
Mount your audiobooks read-only, set PUID/PGID to the user that should own /data, and set
AUDIOSILO_PUBLIC_URL so QR / invite links are correct.