Getting Started

Installation

Stand up your own ListenUp server with Docker: one container, one data volume, and your audiobooks. Then finish setup from the app.

~3 min

ListenUp is server software you host yourself. There’s no cloud account and nothing to sign up for. You run the server, then connect the apps to it. Your files and listening history never leave your machine.

System requirements#

ListenUp’s server is a small native binary, so it’s happy on modest hardware.

  • CPU & OS: a 64-bit x86 (amd64) Linux host with Docker. The server currently ships as a native linux/amd64 image; arm64 isn’t supported yet.
  • Memory: light. There’s no JVM, so a small VPS, a NAS, or a spare home server is plenty.
  • Storage: room for your audiobooks, plus a little for ListenUp’s own data directory (the database and cached cover art).

Already running a media server? ListenUp sits comfortably alongside Plex, Jellyfin or *arr stacks. Give it its own port (default 8080) and point it at a read-only mount of your audiobook folder.

Install with Docker#

ListenUp ships as a single image: ghcr.io/listenupapp/listenup-server. It needs one persistent volume for its own data (the directory pointed to by LISTENUP_HOME) and a mount for your audiobooks.

terminal bash
docker run -d --name listenup \
    -p 8080:8080 \
    -v listenup-data:/data \
    -v /mnt/media/audiobooks:/audiobooks:ro \
    -e LISTENUP_HOME=/data \
    -e LISTENUP_LIBRARY_PATH=/audiobooks \
    --restart unless-stopped \
    ghcr.io/listenupapp/listenup-server:latest

Most people prefer a Compose file they can version-control. Drop this in a docker-compose.yml and run docker compose up -d:

docker-compose.yml yaml
services:
  listenup:
    image: ghcr.io/listenupapp/listenup-server:latest
    container_name: listenup
    ports:
      - "8080:8080"
    environment:
      LISTENUP_HOME: /data
      LISTENUP_LIBRARY_PATH: /audiobooks
    volumes:
      - listenup-data:/data
      - /mnt/media/audiobooks:/audiobooks:ro
    restart: unless-stopped

volumes:
  listenup-data:

Mount your audiobooks read-only (:ro). ListenUp only ever reads them. It never moves, renames, or writes tags back into your files. Everything it derives lives in its own database instead.

LISTENUP_LIBRARY_PATH is optional: leave it unset to start with an empty library and add your folders later from the app. Multiple folders are separated by : (for example -e LISTENUP_LIBRARY_PATH=/audiobooks:/podcasts). See the Configuration reference for every setting.

Verify it’s running#

Once the container is up, check the health endpoint. A 200 OK with {"status":"ok"} means the server is ready.

terminal bash
curl http://localhost:8080/healthz
# {"status":"ok"}

First-run setup#

ListenUp has no web interface. You set the server up from the app. Install ListenUp on your phone, point it at your server, and it walks you through creating the owner account.

Install the app and connect

Get ListenUp for iOS or Android . On the same network it discovers your server automatically; otherwise enter its address (for example http://your-host:8080).

Create the owner account

The first account you make becomes the server owner, with full control over users, libraries, collections, and settings. There’s no email reset; this is your server, so pick a strong password.

Add your library

If you didn’t set LISTENUP_LIBRARY_PATH, add your audiobook folders from Administration. ListenUp walks the folders, groups files into books, and reads embedded tags. A few thousand titles take a couple of minutes, and books stream in as they’re found.

Match metadata

For anything missing a cover or author, fetch details by title, author, or ASIN: covers, series order, narrators, and descriptions, all in one pass.

To bring in family or friends, open Administration → Invites and share an invite link. New sign-ups otherwise follow your registration policy (an approval queue by default).

Next steps#

With the server running and the app connected, the Server Setup guides cover the rest:

Last updated June 27, 2026