
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 QuickBox CLI
LazyLibrarian uses the standard QuickBox software actions:
qb install lazylibrarian -u usernameInstall from the Dashboard
In the QuickBox dashboard software list, the LazyLibrarian row includes Install and Reinstall actions for eligible users.
Access and authentication
URL / route
LazyLibrarian is proxied through nginx at the per-user path:
/username/lazylibrarianThe 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 forapi_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.
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@usernameBest practices
Do
- Use the nginx path
/username/lazylibrarianso the app matches the configuredhttp_root. - Keep the user config at
/home/username/.config/LazyLibrarian/config.iniso 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_rootinconfig.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
QuickBox resources
LazyLibrarian resources
Join the Community
Media server operators sharing configs, getting support, and shaping the future of QuickBox Pro.