Chantal Documentation

Chantal - A unified CLI tool for offline repository mirroring.

Because every other name was already taken.

Version 1.0 Python 3.10+

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)

Indices and tables