Skip to content

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
└── .dockerignore

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM lscr.io/linuxserver/lazylibrarian:latest
# Set environment variables
ENV PUID=${PUID:-1000}
ENV PGID=${PGID:-1000}
ENV TZ=${TZ:-UTC}
# Create directories
RUN mkdir -p /books /downloads /config
# Expose the web interface port
EXPOSE 5299
# The base image includes the default entrypoint

Environment Variables Reference

VariableRequiredDefaultDescription
PUIDNo1000User ID for file permissions
PGIDNo1000Group ID for file permissions
TZNoUTCTimezone
DOCKER_MODSNo-Additional mods (e.g., calibre)

Deploying LazyLibrarian on Klutch.sh

    Push Your Repository to GitHub

    Initialize your repository and push to GitHub:

    Terminal window
    git init
    git add Dockerfile .dockerignore README.md
    git commit -m "Initial LazyLibrarian deployment configuration"
    git remote add origin https://github.com/yourusername/lazylibrarian-deploy.git
    git push -u origin main

    Create 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:

    • Select HTTP as the traffic type
    • Set the internal port to 5299

    Set Environment Variables

    Add the following environment variables:

    VariableValue
    PUID1000
    PGID1000
    TZYour timezone (e.g., America/New_York)

    Attach Persistent Volumes

    Add volumes for data persistence:

    Mount PathRecommended SizePurpose
    /config5 GBConfiguration and database
    /books500+ GBYour ebook and audiobook library
    /downloads50 GBTemporary download storage

    Deploy Your Application

    Click Deploy to start the build process. Klutch.sh will:

    • Detect your Dockerfile automatically
    • Build the container image
    • Attach the persistent volumes
    • Start the LazyLibrarian container
    • Provision an HTTPS certificate

    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:

  1. Go to Config to set up basic settings
  2. Configure your download directory
  3. Set your ebook library path
  4. Configure authentication if desired

Adding Indexers

Configure search providers:

  1. Go to Config > Providers
  2. Add your Usenet or torrent indexers
  3. Configure API keys
  4. Test each provider

Setting Up Download Clients

Connect to your download client:

  1. Go to Config > Downloaders
  2. Select your client type
  3. 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:

  1. Go to Config > Providers
  2. Enable Goodreads (requires API key)
  3. Enable Google Books
  4. Configure LibraryThing if available

Managing Your Library

Adding Authors

Start tracking authors:

  1. Go to Authors
  2. Search for an author
  3. Click to add them
  4. Configure which books to track

Want Lists

Track specific books:

  1. Go to Books
  2. Click Add Book
  3. Search by title or ISBN
  4. Add to want list

Library Scanning

Import existing books:

  1. Go to Config > Processing
  2. Set your ebook folder path
  3. Run Library Scan
  4. Review matched books

Calibre Integration

Setting Up Calibre

For advanced library management:

  1. Enable Calibre mod in Docker
  2. Configure Calibre library path
  3. Set up Calibre content server
  4. 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.