Skip to Content
Listenarr

Listenarr

Automated audiobook and eBook collection management

Overview

Listenarr is an audiobook and eBook downloader in the *arr style — think Sonarr or Radarr, but for books. It monitors your favorite authors and titles, enriches metadata from Audible, Amazon, and OpenLibrary (covers, narrators, series data — all built in, no separate indexer app needed), and hands grabs to the download clients you already run: qBittorrent, Transmission, SABnzbd, or NZBGet.

Early, actively developed community project

Listenarr is a community project — it is not part of the official Servarr suite. Upstream currently publishes canary pre-release builds only; no stable release exists yet. It works well and is moving fast, but expect the occasional rough edge and visible change between updates.

QuickBox Pro installs Listenarr per user as a self-contained build: the release ships everything in a single package, so there is no host runtime to install or maintain. The application code lives under /opt/username/Listenarr/, all of your data lives in one state tree under /home/username/.config/Listenarr/, and a per-user systemd service serves the UI at https://your-server/username/listenarr/ through the nginx reverse proxy — bound to localhost only, with nginx as the sole public entry point.


Key features

Audiobook & eBook Automation

Monitor authors and titles and grab new releases automatically in the familiar *arr workflow

Built-In Rich Metadata

Covers, narrators, and series data from Audible, Amazon, and OpenLibrary — no external indexer manager required

Download Client Integration

Hands grabs to qBittorrent, Transmission, SABnzbd, or NZBGet — your existing clients do the downloading

Quality & Format Profiles

Control preferred audiobook and eBook formats per title

Self-Contained Runtime

Ships as a single-file build with everything bundled — no host runtime to install, patch, or version-manage

Live UI Updates

Download progress, logs, and settings stream into the web UI in real time over WebSockets

Zero-Maintenance Storage

Library, settings, and API key live in a single SQLite database that migrates itself automatically on every update

Per-User Service

Isolated systemd unit listenarr@username with an auto-allocated port and loopback-only binding behind nginx

When to use it

Good fit

  • You want hands-off audiobook and eBook automation — monitor authors, grab new releases, sort and rename
  • You want audiobook-first metadata: narrators, series, and covers sourced from Audible
  • You already run qBittorrent, Transmission, SABnzbd, or NZBGet and want them put to work for books
  • You are looking for a successor to Readarr now that upstream has retired it

What you get

  • Install via qb install listenarr -u username — a fast binary install with no host runtime
  • Served at https://your-server/username/listenarr/ with WebSocket-powered live updates
  • Single per-user systemd service listenarr@username with auto-start on boot
  • If you need a settled, long-stable tool today, look at LazyLibrarian instead — Listenarr is young and pre-release

Installation

Install from the QuickBox CLI

qb install listenarr -u username

The install downloads the newest upstream release, extracts it into the per-user install tree, patches the bundled web client for your personal URL path, and starts the service. There is no compile step and no runtime provisioning — installs complete in well under a minute on a typical connection.

Pre-release builds — the canary channel

Listenarr’s upstream has not cut a stable release yet; every build it publishes is a canary pre-release. A default install prefers the stable channel, finds no stable release, and automatically falls forward to the newest canary build with a notice. Passing —beta selects the canary channel explicitly. The channel you installed with is recorded, and once upstream publishes its first stable release, installs made without —beta pick it up automatically on their next qb update.

CLI commands

Command
qb install listenarr -u username
Description
Install Listenarr for the user at the per-user subpath
Command
qb install listenarr -u username --beta
Description
Install and explicitly track the canary (pre-release) channel
Command
qb update listenarr -u username
Description
Update to the newest release on your recorded channel — your data is untouched
Command
qb update listenarr -u username --beta
Description
Update to the newest canary build for this update run
Command
qb reinstall listenarr -u username
Description
Remove and freshly install — wipes the per-user state tree (back up first)
Command
qb remove listenarr -u username
Description
Stop the service and remove the install AND all per-user data (see warning below)
Command
qb help listenarr
Description
Show CLI help for flags and examples

Install flags

Flag
-u <username>
Description
The QuickBox user to install Listenarr for
Flag
--beta
Description
Track the canary (pre-release) channel explicitly

Install from the Dashboard

You can also install Listenarr from the QuickBox Pro dashboard. The dashboard installs for the currently signed-in user — there is no user picker on the install dialog. To install for a different user, use the CLI with an explicit -u <other_user>.

To install from the dashboard:

  1. Open App Dashboard → Package Management (/dashboard?mode=packages)
  2. Find Listenarr under the Media Management category
  3. Submit — a live install log streams in the response modal

The dashboard runs the same install pipeline as the CLI.

Automatic port assignment

The upstream default port is 4545, but QuickBox assigns each user their own free port at install time and binds it to 127.0.0.1 only — nginx is the sole public entry point. The assigned port is recorded in the QuickBox database and shown on the Listenarr row in the dashboard’s App Dashboard. You never need to touch it.


Access and authentication

URL

Listenarr is published under the per-user subpath of your QuickBox server:

https://your-server/username/listenarr/

The bundled web client is patched for this exact path at install time, so the subpath is served natively — including the WebSocket connections that power live download progress and log streaming. You can also click Open on the Listenarr row in the dashboard’s App Dashboard to launch the UI directly.

Enable authentication first

Listenarr ships with authentication DISABLED

Out of the box, Listenarr does not ask for a login — its built-in authentication is off by default, and QuickBox does not place a password gate in front of it. Until you enable authentication, anyone who can reach your server’s URL can open your Listenarr UI and its API. Make enabling Listenarr’s built-in authentication your first step after install.

To lock your instance down:

  1. Open https://your-server/username/listenarr/
  2. Go to Listenarr’s Settings and enable authentication
  3. Set a username and a strong password, then save — the UI switches to a login page from that point on

QuickBox does not generate, write, or store any Listenarr credentials — there is no default password, no credentials file, and nothing to reveal in the dashboard. The account exists only after you create it inside the app.

API key

Listenarr auto-generates its API key on first start and stores it in its own database. View it inside the app’s Settings when a download client, script, or companion tool asks for it. There is no API key file on disk, and the dashboard does not display it.


Configuration and files

Listenarr keeps the application install and your data in two separate trees. Everything that matters to you — the database, settings, and logs — lives under /home/username/.config/Listenarr/. The install tree under /opt/username/Listenarr/ carries zero state and is fully replaced on every update.

/
opt//
└── username//
│ └── Listenarr//# Install tree — the extracted release, fully replaceable
│ │ ├── Listenarr.Api# Self-contained single-file server executable run by the systemd unit
│ │ └── wwwroot//# Pre-built web client, patched at install for your per-user URL path
home//
└── username/.config/Listenarr//# Per-user state tree — all your data lives here
│ ├── .channel# Release-channel marker (stable or canary) honored by qb update
│ ├── wwwroot# Symlink to the patched web client in the install tree (refreshed on update)
│ └── config//# Application config root — also holds data-protection keys and the image cache
│ │ ├── appsettings/appsettings.json# Text configuration file (most runtime settings live in the database instead)
│ │ ├── database/listenarr.db# The Listenarr SQLite database — library, settings, and API key
│ │ └── logs//# Date-rolled application log files (listenarr-YYYYMMDD.log)
etc//
├── nginx/software//
│ └── username.listenarr.conf# Subpath reverse proxy with WebSocket support for live updates
└── systemd/system//
│ └── listenarr@username.service# Per-user systemd unit — your assigned port and state path are baked in

Nearly all of Listenarr’s settings live in its SQLite database and are managed through the web UI — appsettings.json exists, but you will rarely need to touch it. The listen port and the state-tree location are managed by QuickBox through the systemd unit and kept in sync with nginx and the QuickBox database automatically.


Service management

Listenarr runs as a single per-user systemd unit:

# Check status sudo systemctl status listenarr@username # Restart / stop / start sudo systemctl restart listenarr@username sudo systemctl stop listenarr@username sudo systemctl start listenarr@username # Follow the service log sudo journalctl -u listenarr@username -f

The service starts automatically at boot. Listenarr’s database migrates itself during startup after an update — no manual migration step is ever needed; the web UI simply answers once the migration completes (typically a few seconds). The systemd journal carries the full service output and is the first place to look; Listenarr also writes date-rolled log files under /home/username/.config/Listenarr/config/logs/.


Common tasks

Enable authentication

Do this first — see Enable authentication first above. Open the app, go to Settings, enable authentication, and set a username and strong password.

Add a download client

  1. In the Listenarr UI, open the download client settings
  2. Add your client — qBittorrent, Transmission, SABnzbd, or NZBGet — with its host, port, and credentials
  3. On a QuickBox server your clients run on the same machine, so localhost plus the client’s assigned port is the usual shape
  4. Test the connection and save — Listenarr hands every grab to the client from then on

Update Listenarr

qb update listenarr -u username

The update stops the service, replaces the install tree with the newest release on your recorded channel, re-patches the fresh web client for your URL path, and starts the service again. Your database, settings, and logs are untouched — all state lives outside the install tree. Add --beta to pull the newest canary build for that update run.

Check the logs

# Service output (the canonical log stream) sudo journalctl -u listenarr@username -f # In-app date-rolled log files ls /home/username/.config/Listenarr/config/logs/

Back up your data

Everything worth keeping lives in one tree. Back it up while the service is stopped for a clean snapshot:

sudo systemctl stop listenarr@username tar -czf ~/listenarr-backup.tar.gz -C /home/username/.config Listenarr sudo systemctl start listenarr@username

QuickBox also snapshots listenarr.db into /home/username/.QuickBox/software/listenarr/ during installs.

Remove Listenarr

qb remove listenarr -u username
Remove and reinstall wipe ALL your data

Both qb remove listenarr and qb reinstall listenarr delete the full per-user state tree at /home/username/.config/Listenarr/ — the database, your library records, settings, API key, and logs — along with the install tree, the systemd unit, and the nginx config. Back up the state tree first if there is any chance you will want your library back. Your actual audiobook and eBook files in your media folders are NOT touched.


Troubleshooting

Service will not start

Check the journal first: sudo journalctl -u listenarr@username -n 100. The most common causes are filesystem permission drift under the state tree (files under /home/username/.config/Listenarr/ must be owned by your user) and an interrupted update (rerun qb update listenarr -u username to redeploy a clean install tree).

Install fails with a patch error

At install and update time, QuickBox patches the bundled web client so it serves correctly from your per-user URL path — and it verifies every patch location before rewriting anything. If upstream changes its frontend layout, the install fails loudly with a patch error instead of leaving you with a broken white-screen UI. If you hit this, an upstream build changed shape before QuickBox caught up: report it on the QuickBox Discord and retry after the next QuickBox update.

Install seems to pause at service start

The install waits for Listenarr to actually answer HTTP before reporting success — the first start runs the database setup, which takes a few seconds. The wait is bounded at two minutes; if the service never answers, the install fails with a service error and the journal (sudo journalctl -u listenarr@username) tells you why.

Blank page or 404ing assets

The web client is patched for exactly one URL path. If an update was interrupted partway, the client and the URL can disagree — run qb update listenarr -u username to redeploy and re-patch a clean copy.


Best practices

Do

  • Enable Listenarr's built-in authentication immediately after install — the UI and API ship unprotected by default
  • Back up /home/username/.config/Listenarr/ regularly — the database, settings, and API key all live there
  • Use qb update listenarr -u username for updates — it replaces the install tree and re-patches the web client while leaving your data untouched
  • Expect change between updates — Listenarr is a young community project shipping pre-release builds, and the UI evolves quickly

Don't

  • Don't run qb remove or qb reinstall without a backup — both permanently wipe your database and settings
  • Don't edit the port in the systemd unit by hand — nginx and the QuickBox database must agree with it, and QuickBox manages all three together
  • Don't delete the .channel marker in the state tree — qb update uses it to keep you on the channel you installed with
  • Don't install Listenarr from Docker or upstream packages alongside the QuickBox package — they will fight over ports and data paths

FAQ

No. Listenarr is an independent community project (Listenarrs/Listenarr on GitHub, AGPL-3.0 licensed) that follows the *arr design language. It is actively developed but young — upstream publishes canary pre-release builds only at this time, so expect visible change between updates.
Upstream has not published a stable release yet — every available build is a canary pre-release. The default install prefers the stable channel, finds nothing there, and falls forward to the newest canary with a notice. Your install is still recorded as a stable-channel install: the moment upstream cuts its first stable release, qb update picks it up automatically with no flags needed.
No. Listenarr's metadata and search enrichment is built in — it sources covers, narrators, and series data directly from Audible, Amazon, and OpenLibrary. There is no Prowlarr integration to configure. Downloads are handed to your own download clients: qBittorrent, Transmission, SABnzbd, or NZBGet.
There is no login at all by default — Listenarr ships with its built-in authentication disabled, and QuickBox does not generate any credentials for it. Enable authentication in Listenarr's Settings and set your own username and password as your first step after install.
Listenarr auto-generates its API key on first start and stores it in its own database. View it inside the app's Settings. There is no API key file on disk and nothing to reveal in the QuickBox dashboard.
Not at this time. Listenarr is served at the per-user subpath (https://your-server/username/listenarr/), which is patched into the web client at install time and works natively — including WebSockets. Custom-subdomain SSL publishing is not currently available for Listenarr.
Everything belonging to the install: the install tree, the systemd unit, the nginx config, and the entire state tree at /home/username/.config/Listenarr/ including the database, settings, API key, and logs. qb reinstall does the same before installing fresh. Your audiobook and eBook media files are not touched. Back up the state tree first if in doubt.

Resources

Join the Community

Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.

Dedicated Support
Feature Previews
Community Configs
Active Discussions
Join Discord Server
Last updated on