Fetch, Upload, Organize, and Distribute Software Packages.

Pulp is a platform for managing repositories of software packages and making it available to a large numbers of consumers. Pulp can locally mirror all or part of a repository, host your own software packages in repositories, and manage many types of content from multiple sources in one place.

Pulp has a REST API and command line interface for management.

Pulp is free and open-source, and we invite you to join us on GitHub.

Manage and deliver RPM content

  • Supports RPMs, DRPMs, SRPMs, Errata, Kickstart Trees, and repository metadata
  • Sync remote repository content and metadata locally
  • Upload your own content
  • Publish content to one or more repositories
  • Published content is installable with yum/dnf
  • On demand fetching of content allowing repositories to be synced and published without storing everything locally
  • Fetch content protected by basic or certificate based authentication
  • Protect content with certificates to be used by yum/dnf clients

Manage and deliver Python content

  • Sync Python packages from PyPI locally
  • Upload your own Python packages
  • Publish and organize Python packages just like PyPI
  • Install Python packages using pip as published by Pulp

Manage and deliver Puppet content

  • Sync Puppet modules from Puppet Forge locally
  • Upload your own Puppet modules
  • Publish and organize Puppet modules just like Puppet Forge
  • Use the Puppet client to install Puppet modules published by Pulp

Manage and deliver Docker content

  • Sync Docker modules from the Docker Registry
  • Publish and organize Docker containers
  • Install Docker containers as published by Pulp and served with Crane

Manage and deliver OSTree content

  • Sync OSTree branches from remote OSTrees
  • Publish and organize OSTree branches
  • Use OSTree compatible clients to install OSTree repositories published by Pulp