Skip to content

Private PyPI repository quickstart

Ravenstash provides PyPI-compatible upload endpoints and private simple indexes for Python packages.

When a repository supports multiple ecosystems, its PyPI packages, URLs, usage, and upstream settings remain separate from npm and Maven.

  • Authenticated Python package uploads.
  • PEP 503 HTML simple-index responses.
  • PEP 691 JSON responses when requested by the client.
  • Core metadata sidecars when they are available.
  • Authenticated artifact downloads.
  • An optional private PyPI mirror with security scanning and minimum package age.
  1. Create a package repository with PyPI enabled, or add PyPI to an existing repository.
  2. Sign in with rvs and select the repository.
  3. Build and publish your Python distribution through rvs uv or rvs twine.
  4. Install the exact version with rvs pip or rvs uv as shown in Install Python packages.
  5. Confirm the package appears in the Ravenstash repository.

The examples use this repository:

Owner: acme
Repository: packages
Download: https://pypi.rvsta.sh/in_wsabc123/r_repo1234/simple/
Upload: https://push.pypi.rvsta.sh/in_wsabc123/r_repo1234/

rvs selects these generated URLs for you from the repository target.