Skip to content

Private PyPI repositories

Enable PyPI in a Ravenstash repository to publish Python wheels and source distributions, expose a private simple index, and install authenticated packages with familiar Python tools through rvs.

Ravenstash supports authenticated uploads and downloads, PEP 503 HTML simple indexes, PEP 691 JSON responses, and core metadata sidecars when available. PyPI content keeps its own URLs, package releases, usage, and mirror configuration when the same Ravenstash repository also supports other package formats.

Use rvs pip, rvs uv, or rvs twine for the shortest developer workflow. Native clients can use short-lived, target-specific credentials when a wrapper does not fit the environment.

When the repository connects a PyPI mirror or another private repository, its own packages come first and the first upstream that has a name supplies all of its versions. See How upstream package resolution works.

To keep names you own, such as acme-*, away from public registries, or to combine versions from several sources, add package resolution rules on the repository’s Rules tab.