Skip to Content
LazyLibrarian

LazyLibrarian

LazyLibrarian is a SickBeard, CouchPotato, Headphones-like application for ebooks, audiobooks, and magazines.

Overview

LazyLibrarian uses a combination of Goodreads, Librarything, and optionally GoogleBooks as sources for author and book metadata. In QuickBox Pro, it is installed per user, runs as a systemd service, and is exposed through the nginx reverse proxy.

Key features

Per-user service

Runs as a user-scoped systemd unit (lazylibrarian@username).

Reverse-proxy path

Default access path is /username/lazylibrarian via nginx.

User-scoped config

Configuration lives at /home/username/.config/LazyLibrarian/config.ini.

Basic auth in nginx

The nginx template enables auth_basic with /etc/htpasswd.d/htpasswd.username.

When to use it

Use LazyLibrarian when

  • Manage ebooks, audiobooks, and magazines with metadata lookups.
  • Run LazyLibrarian as a per-user service with user-scoped settings.

You want to

  • Install with qb install lazylibrarian -u username.
  • Access it through the nginx path /username/lazylibrarian.

Installation

Install from the Dashboard

Open App Dashboard → Package Management (/dashboard?mode=packages), find LazyLibrarian in the catalog (browse Media Management or search), and click Install. The dashboard streams the install log live and LazyLibrarian appears in your Application Control panel when it finishes. Reinstall, Update, and Remove are available from the same panel.

What you see and can manage is gated by your account: admins manage any user’s apps; regular users manage their own. See App Management for the full flow.

Install from the CLI (automation)

The CLI runs the same install and is suited to automation and scripting:

qb install lazylibrarian -u username qb reinstall lazylibrarian -u username qb update lazylibrarian -u username qb remove lazylibrarian -u username

Full flag reference: CLI Reference.

Access and authentication

URL / route

LazyLibrarian is proxied through nginx at the per-user path:

/username/lazylibrarian

The service listens on the user port set during install (default is 5299) and the proxy forwards to:

http://127.0.0.1:port/username/lazylibrarian/

Credentials / tokens

If you generate an API key in LazyLibrarian, QuickBox reads it from:

  • /home/username/.config/LazyLibrarian/config.ini (look for api_key =)

Security notes

The nginx template enables HTTP basic auth for LazyLibrarian using:

  • /etc/htpasswd.d/htpasswd.username

Configuration and files

LazyLibrarian stores user configuration and logs under the user home directory.

LazyLibrarian user files
/home/username
.config/
└── LazyLibrarian/
│ ├── config.ini# Main LazyLibrarian configuration
│ └── Logs/# Application logs
tmp/# TMPDIR for LazyLibrarian (/home/username/tmp/LazyLibrarian)

Additional system locations used by QuickBox:

  • /opt/username/LazyLibrarian (application files)
  • /opt/username/lib/python/LazyLibrarian (Python venv)
  • /etc/nginx/software/username.lazylibrarian.conf (path-based proxy)
  • /etc/systemd/system/lazylibrarian@username.service

Common tasks

# Start or restart LazyLibrarian for a user systemctl start lazylibrarian@username systemctl restart lazylibrarian@username # Stop LazyLibrarian for a user systemctl stop lazylibrarian@username

Best practices

Do

  • Use the nginx path /username/lazylibrarian so the app matches the configured http_root.
  • Keep the user config at /home/username/.config/LazyLibrarian/config.ini so dashboard tools can read the API key.

Don't

  • Don’t enable both nginx auth and LazyLibrarian browser auth at the same time; the install notes warn they can conflict.
  • Don’t change the nginx proxy path without updating http_root in config.ini.

Troubleshooting

App loads but assets fail or redirect loops

The nginx proxy expects LazyLibrarian to run under /username/lazylibrarian. Confirm http_root in /home/username/.config/LazyLibrarian/config.ini matches the proxy path.

API key shows as not generated

QuickBox reads the API key from /home/username/.config/LazyLibrarian/config.ini using the api_key = line. Generate the key in LazyLibrarian and re-check the file.

Service not responding

Verify the user service is running: systemctl status lazylibrarian@username. The unit starts /opt/username/LazyLibrarian/LazyLibrarian.py with the per-user config and port.

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