Chantal Documentation
Chantal - A unified CLI tool for offline repository mirroring.
Because every other name was already taken.
Overview
Chantal is a Python-based CLI tool for offline repository mirroring, inspired by pulp-admin, reposync, aptly, and bandersnatch.
The Problem: Enterprise environments need offline mirrors of package repositories with:
Version control (snapshots for rollback)
Efficient storage (deduplication across repos)
Support for multiple ecosystems (RPM, DEB/APT, PyPI)
RHEL subscription support
Simple management
The Solution: One tool. One workflow. Content-addressed storage. Immutable snapshots.
Repository Type Support:
Type |
Description |
Status |
|---|---|---|
RPM/DNF/YUM |
RHEL, CentOS, Fedora, Rocky, … |
✅ Available |
DEB/APT |
Debian, Ubuntu |
✅ Available |
Helm Charts |
Kubernetes Helm repositories |
✅ Available |
Alpine APK |
Alpine Linux packages |
✅ Available |
PyPI |
Python Package Index |
🚧 Planned |
npm/yarn |
Node.js package registries |
🚧 Planned |
RubyGems |
Ruby package registry |
🔬 Research |
NuGet |
.NET package registry |
🔬 Research |
Go Modules |
Go package repositories |
🔬 Research |
Terraform Provider |
Terraform provider registry |
🔬 Research |
Legend: ✅ Available | 🚧 Planned | 🔬 Research Phase
See GitHub Issues for details and progress.
Features
🔄 Unified Mirroring - Support for multiple package ecosystems in one tool
✅ RPM/DNF/YUM (RHEL, CentOS, Fedora, Rocky, Alma) - Available now
✅ DEB/APT (Debian, Ubuntu) - Available now
✅ Helm Charts (Kubernetes chart repositories) - Available now
✅ Alpine APK (Alpine Linux packages) - Available now
🚧 PyPI, npm - Planned
🔬 RubyGems, NuGet, Go Modules, Terraform - Research phase
📦 Deduplication - Content-addressed storage (SHA256), packages stored once
📸 Snapshots - Immutable point-in-time repository states for patch management
🔍 Views - Virtual repositories combining multiple repos (e.g., BaseOS + AppStream + EPEL)
🔌 Modular - Plugin architecture for repository types
🚫 No Daemons - Simple CLI tool (optional scheduler for future automation)
📁 Static Output - Serve with any webserver (Apache, NGINX)
🔐 RHEL CDN Support - Client certificate authentication for Red Hat repos
🎯 Smart Filtering - Pattern-based package filtering with post-processing
⚡ Fast Updates - Check for updates without downloading (like
dnf check-update)
Configuration
Plugins
API Reference