AudioSilo

Installation

AudioSilo Server is the only thing you install. The Docker image and the native binaries both include the web player, so the apps work out of the box. Docker is the recommended path for always-on, NAS, VPS and multi-user setups.

Requirements

  • Docker (to run the published image), or a single downloaded binary.
  • A folder of audiobooks (m4b, or mp3 parts — the scanner figures out the shape).
  • ffmpeg/ffprobe is optional but recommended (durations and chapters). The Docker image includes it; the native binaries fetch it automatically on first run if it isn't present.

Option 1 — Docker (recommended)

Create a docker-compose.yml, mounting your audiobooks read-only and persisting /data:

docker-compose.yml
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

Then start it and read the logs to grab your one-time admin credentials:

docker compose up -d
docker compose logs        # first run prints the admin password + auth code ONCE

Set PUID/PGID to the user that should own /data (Unraid: 99/100; generic Linux: your id -u/id -g). The entrypoint chowns the data dir and runs the server as that user, so it works regardless of how the mounted volume is owned.

Updating the server or the bundled player is always a new image:

docker compose pull && docker compose up -d

Option 2 — Native binary

Download the archive for your OS/arch from the server releases page (.tar.gz, .zip, or a .deb/.rpm that installs a systemd service), extract it, and run:

# Run with a guided browser setup wizard (recommended for home users):
./audiosilo --setup --data ./data

# Or run headless — it auto-creates an admin and prints the password + auth code once:
AUDIOSILO_TLS_MODE=off ./audiosilo --data ./data

The --data directory holds the config, database and certs. The web player is embedded in the binary, so /web just works.

After it's running

By default the server listens on :8080 with a self-signed certificate. Open https://localhost:8080/admin to reach the admin console, or continue with the first-run guide to add a library and pair a device. To put it on the internet safely, see reverse proxy & TLS.