Skip to content

Deploying pyLoad

Introduction

pyLoad is a free and open-source download manager written in Python, designed specifically for downloading from one-click-hosters and file sharing services. It provides a web-based interface for managing downloads, automatic captcha solving, and support for premium accounts across dozens of hosting services.

Originally released in 2008, pyLoad has evolved into a mature, feature-rich download manager that runs on minimal resources. The application supports plugins for various file hosters, extractors for compressed archives, and hooks for notifications and external integrations.

Key highlights of pyLoad:

  • Web Interface: Clean, responsive web UI accessible from any browser on any device
  • Extensive Plugin Support: Built-in plugins for over 300 file hosting services
  • Captcha Recognition: Automatic captcha solving with support for multiple services
  • Premium Account Support: Use premium accounts to bypass speed limits and waiting times
  • Queue Management: Organize downloads into packages with priority ordering
  • Automatic Extraction: Extract downloaded archives automatically (RAR, ZIP, 7z)
  • Link Checker: Verify link availability before downloading
  • Container File Support: Import DLC, CCF, and RSDF container files
  • Scheduling: Set download schedules and speed limits by time of day
  • API Access: RESTful API for integration with other applications
  • Low Resource Usage: Runs efficiently on minimal hardware
  • Open Source: Licensed under AGPL-3.0 with active community development

This guide walks through deploying pyLoad on Klutch.sh using Docker, configuring persistent storage for downloads, and setting up the application for production use.

Why Deploy pyLoad on Klutch.sh

Deploying pyLoad on Klutch.sh provides several advantages for automated download management:

Simplified Deployment: Klutch.sh automatically detects your Dockerfile and builds pyLoad without complex orchestration. Push to GitHub, and your download manager deploys automatically.

Persistent Storage: Attach persistent volumes for your downloads, configuration, and temporary files. Your download queue and completed files survive container restarts.

HTTPS by Default: Klutch.sh provides automatic SSL certificates, ensuring secure access to your download manager interface from anywhere.

GitHub Integration: Connect your configuration repository directly from GitHub. Updates to your Dockerfile trigger automatic redeployments.

Scalable Resources: Allocate CPU, memory, and storage based on your download needs. Scale resources as your usage grows.

Environment Variable Management: Securely store sensitive configuration like premium account credentials through Klutch.sh’s environment variable system.

Custom Domains: Assign a custom domain to your pyLoad instance for convenient access.

Always-On Availability: Your download manager runs 24/7, processing queued downloads even when you’re not actively monitoring.

Prerequisites

Before deploying pyLoad on Klutch.sh, ensure you have:

  • A Klutch.sh account
  • A GitHub account with a repository for your pyLoad configuration
  • Basic familiarity with Docker and containerization concepts
  • (Optional) Premium accounts for file hosting services
  • (Optional) A custom domain for your pyLoad instance

Understanding pyLoad Architecture

pyLoad is built on a modular Python architecture:

Core Application: The main pyLoad daemon handles download scheduling, queue management, and coordination between components.

Web Interface: A built-in web server provides the user interface, running on port 8000 by default.

Plugin System: Modular plugins handle different hosters, captcha services, extractors, and notification hooks.

SQLite Database: Configuration, download history, and queue state are stored in an SQLite database.

File Storage: Downloaded files are stored in configurable directories, with separate paths for completed downloads and temporary files.

Preparing Your Repository

To deploy pyLoad on Klutch.sh, create a GitHub repository containing your Dockerfile and configuration.

Repository Structure

pyload-deploy/
├── Dockerfile
├── .dockerignore
└── README.md

Creating the Dockerfile

Create a Dockerfile in the root of your repository:

FROM linuxserver/pyload-ng:latest
# Environment variables for LinuxServer.io image
ENV PUID=${PUID:-1000}
ENV PGID=${PGID:-1000}
ENV TZ=${TZ:-UTC}
# Create download directories
RUN mkdir -p /downloads /downloads/complete /downloads/incomplete
# Expose web interface port
EXPOSE 8000
# The base image includes the default entrypoint

Creating the .dockerignore File

Create a .dockerignore file to exclude unnecessary files:

.git
.github
*.md
LICENSE
.gitignore
*.log
.DS_Store
.env
.env.local

Environment Variables Reference

VariableRequiredDefaultDescription
PUIDNo1000User ID for file ownership
PGIDNo1000Group ID for file ownership
TZNoUTCTimezone for scheduling and logs

Deploying pyLoad on Klutch.sh

Once your repository is prepared, follow these steps to deploy pyLoad:

    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 pyLoad deployment configuration"
    git remote add origin https://github.com/yourusername/pyload-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 “pyload” or “download-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 pyLoad Dockerfile.

    Configure HTTP Traffic

    In the deployment settings:

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

    Set Environment Variables

    In the environment variables section, add:

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

    Attach Persistent Volumes

    Add the following volumes for data persistence:

    Mount PathRecommended SizePurpose
    /config1 GBpyLoad configuration and database
    /downloads100+ GBDownloaded files (adjust based on needs)

    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 pyLoad container
    • Provision an HTTPS certificate

    Access pyLoad

    Once deployment completes, access your pyLoad instance at https://your-app-name.klutch.sh. The default credentials are:

    • Username: pyload
    • Password: pyload

    Change Default Password

    Immediately change the default password through the web interface under SettingsGeneralPassword.

Initial Setup and Configuration

Configuring General Settings

After logging in, configure pyLoad:

  1. Navigate to SettingsGeneral
  2. Set your preferred language
  3. Configure download folder paths
  4. Set maximum simultaneous downloads
  5. Configure reconnection settings if needed

Adding Premium Accounts

For faster downloads with premium accounts:

  1. Go to SettingsAccounts
  2. Select the file hoster
  3. Enter your premium account credentials
  4. Save and test the connection

Configuring Captcha Services

For automatic captcha solving:

  1. Navigate to SettingsCaptcha
  2. Configure your preferred captcha service (9kw, DeathByCaptcha, etc.)
  3. Enter API credentials
  4. Set solving priority and timeout

Setting Up Extraction

Configure automatic archive extraction:

  1. Go to SettingsPluginsExtractors
  2. Enable UnRAR and/or UnZIP plugins
  3. Set extraction passwords if needed
  4. Configure output directories

Production Best Practices

Security Recommendations

  • Change Default Password: Immediately change the default credentials
  • Use Strong Passwords: Protect access with complex passwords
  • Secure Premium Accounts: Store account credentials securely
  • Regular Updates: Keep pyLoad updated for security patches

Performance Optimization

  • Concurrent Downloads: Balance simultaneous downloads with available bandwidth
  • Speed Limits: Configure limits to avoid saturating your connection
  • Scheduling: Set download windows for off-peak hours
  • Storage Management: Monitor disk usage and clean completed downloads

Backup Strategy

  1. Configuration Backup: Back up the /config directory containing settings and database
  2. Account Information: Document premium account details securely
  3. Plugin Settings: Export custom plugin configurations

Troubleshooting Common Issues

Downloads Stuck or Failing

Symptoms: Downloads don’t start or repeatedly fail.

Solutions:

  • Check if the hoster plugin is enabled and updated
  • Verify premium account credentials if using
  • Check available disk space
  • Review logs for specific error messages

Captcha Issues

Symptoms: Downloads wait for captcha indefinitely.

Solutions:

  • Verify captcha service API credentials
  • Check captcha service balance/credits
  • Try a different captcha solving service
  • Manually solve captchas through the web interface

Cannot Access Web Interface

Symptoms: Browser cannot connect to pyLoad.

Solutions:

  • Verify the deployment is running
  • Confirm HTTP traffic type with port 8000
  • Check that volumes are properly mounted
  • Review container logs for startup errors

Additional Resources

Conclusion

Deploying pyLoad on Klutch.sh gives you a powerful, self-hosted download manager with automatic builds, persistent storage, and secure HTTPS access. The combination of pyLoad’s extensive hoster support and Klutch.sh’s deployment simplicity means you can focus on managing downloads rather than infrastructure.

With support for premium accounts, automatic captcha solving, and archive extraction, pyLoad automates the tedious aspects of downloading from file hosting services. The web interface provides convenient access from any device, while the 24/7 availability ensures your download queue is always processing.

Whether you’re managing occasional downloads or running a comprehensive download automation system, pyLoad on Klutch.sh provides the reliable foundation you need.