Deploying LazyLibrarian
Introduction
LazyLibrarian is an open source application for automating the management of ebooks and audiobooks. Similar to what Sonarr and Radarr do for TV shows and movies, LazyLibrarian helps you track authors, search for new books, and automatically download them when available.
The application integrates with various download clients and indexers, supports multiple metadata sources for book information, and can work alongside Calibre for library management. Whether you’re building an ebook collection or managing audiobooks, LazyLibrarian streamlines the process.
Key features of LazyLibrarian:
- Author Tracking: Follow your favorite authors and get new releases automatically
- Automatic Downloads: Search indexers and download books automatically
- Multiple Formats: Support for ebooks (EPUB, MOBI, PDF) and audiobooks
- Metadata Fetching: Goodreads, Google Books, and other sources
- Calibre Integration: Seamless library management with Calibre
- Magazine Support: Track and download magazine issues
- Download Client Support: SABnzbd, NZBGet, Transmission, Deluge, qBittorrent
- Notifications: Email, Pushover, Telegram, and more
- Web Interface: Browse and manage your library from any browser
- RSS Feeds: Generate feeds for your library
- Want Lists: Track books you’re looking for
- Open Source: Active community development
This guide walks through deploying LazyLibrarian on Klutch.sh using Docker, configuring indexers, and setting up your book library.
Why Deploy LazyLibrarian on Klutch.sh
Deploying LazyLibrarian on Klutch.sh provides several advantages for ebook management:
Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds LazyLibrarian without complex orchestration.
Persistent Storage: Attach persistent volumes for your book library and configuration. Your collection survives container restarts.
HTTPS by Default: Klutch.sh provides automatic SSL certificates for secure access.
GitHub Integration: Connect your configuration repository directly from GitHub. Updates trigger automatic redeployments.
Scalable Resources: Allocate CPU and memory based on library size and download activity.
Environment Variable Management: Securely store API keys and credentials.
Custom Domains: Assign a custom domain for your book management interface.
Always-On Availability: Your library manager runs 24/7 to catch new releases.
Prerequisites
Before deploying LazyLibrarian on Klutch.sh, ensure you have:
- A Klutch.sh account
- A GitHub account with a repository for your configuration
- Basic familiarity with Docker and containerization concepts
- A download client (SABnzbd, NZBGet, or torrent client)
- Indexer access (Usenet or torrent indexers)
- (Optional) A Goodreads API key for metadata
- (Optional) A custom domain for your LazyLibrarian instance
Preparing Your Repository
Create a GitHub repository containing your Dockerfile for deploying LazyLibrarian on Klutch.sh.
Repository Structure
lazylibrarian-deploy/├── Dockerfile├── README.md└── .dockerignoreCreating the Dockerfile
Create a Dockerfile in the root of your repository:
FROM lscr.io/linuxserver/lazylibrarian:latest
# Set environment variablesENV PUID=${PUID:-1000}ENV PGID=${PGID:-1000}ENV TZ=${TZ:-UTC}
# Create directoriesRUN mkdir -p /books /downloads /config
# Expose the web interface portEXPOSE 5299
# The base image includes the default entrypointEnvironment Variables Reference
| Variable | Required | Default | Description |
|---|---|---|---|
PUID | No | 1000 | User ID for file permissions |
PGID | No | 1000 | Group ID for file permissions |
TZ | No | UTC | Timezone |
DOCKER_MODS | No | - | Additional mods (e.g., calibre) |
Deploying LazyLibrarian on Klutch.sh
- Select HTTP as the traffic type
- Set the internal port to 5299
- Detect your Dockerfile automatically
- Build the container image
- Attach the persistent volumes
- Start the LazyLibrarian container
- Provision an HTTPS certificate
Push Your Repository to GitHub
Initialize your repository and push to GitHub:
git initgit add Dockerfile .dockerignore README.mdgit commit -m "Initial LazyLibrarian deployment configuration"git remote add origin https://github.com/yourusername/lazylibrarian-deploy.gitgit push -u origin mainCreate a New Project on Klutch.sh
Navigate to the Klutch.sh dashboard and create a new project. Give it a descriptive name like “lazylibrarian” or “book-manager”.
Create a New App
Within your project, create a new app. Connect your GitHub account if you haven’t already, then select the repository containing your LazyLibrarian Dockerfile.
Configure HTTP Traffic
In the deployment settings:
Set Environment Variables
Add the following environment variables:
| Variable | Value |
|---|---|
PUID | 1000 |
PGID | 1000 |
TZ | Your timezone (e.g., America/New_York) |
Attach Persistent Volumes
Add volumes for data persistence:
| Mount Path | Recommended Size | Purpose |
|---|---|---|
/config | 5 GB | Configuration and database |
/books | 500+ GB | Your ebook and audiobook library |
/downloads | 50 GB | Temporary download storage |
Deploy Your Application
Click Deploy to start the build process. Klutch.sh will:
Access LazyLibrarian
Once deployment completes, access your LazyLibrarian instance at https://your-app-name.klutch.sh.
Initial Configuration
First-Time Setup
When you first access LazyLibrarian:
- Go to Config to set up basic settings
- Configure your download directory
- Set your ebook library path
- Configure authentication if desired
Adding Indexers
Configure search providers:
- Go to Config > Providers
- Add your Usenet or torrent indexers
- Configure API keys
- Test each provider
Setting Up Download Clients
Connect to your download client:
- Go to Config > Downloaders
- Select your client type
- Configure connection settings:
For SABnzbd:
- Host and port
- API key
- Category
For Torrent clients:
- Host and port
- Username/password
- Download directory
Configuring Metadata Sources
Set up book information sources:
- Go to Config > Providers
- Enable Goodreads (requires API key)
- Enable Google Books
- Configure LibraryThing if available
Managing Your Library
Adding Authors
Start tracking authors:
- Go to Authors
- Search for an author
- Click to add them
- Configure which books to track
Want Lists
Track specific books:
- Go to Books
- Click Add Book
- Search by title or ISBN
- Add to want list
Library Scanning
Import existing books:
- Go to Config > Processing
- Set your ebook folder path
- Run Library Scan
- Review matched books
Calibre Integration
Setting Up Calibre
For advanced library management:
- Enable Calibre mod in Docker
- Configure Calibre library path
- Set up Calibre content server
- Link LazyLibrarian to Calibre
Benefits of Calibre Integration
- Format conversion
- Better metadata management
- E-reader syncing
- Library deduplication
Troubleshooting Common Issues
Downloads Not Starting
- Verify download client connection
- Check indexer API keys
- Review search logs for errors
Books Not Matching
- Verify file naming conventions
- Check metadata source configuration
- Manually match problematic titles
Permissions Issues
- Verify PUID/PGID settings
- Check directory permissions
- Ensure volumes are mounted correctly
Additional Resources
Conclusion
Deploying LazyLibrarian on Klutch.sh gives you a powerful ebook and audiobook management solution with automatic builds and secure HTTPS access. Automate your book collection and never miss a new release from your favorite authors.