Skip to content

Select and manage private mirrors

Private mirrors give a personal account or organization a protected, read-only path to another package source. They support PyPI, npm, and Maven. Use rvs art mirror to add, inspect, and select them.

Ravenstash keeps two source types distinct:

Type Target Example
Official Ravenstash-curated source mirror:pypiorg
Custom Source defined by your account custom-mirror:piwheels

Official mirrors are available on every plan. Creating a custom mirror requires an eligible paid plan and organization administrator access where applicable.

The prefixes prevent a mirror from being mistaken for a private repository. No namespace name is reserved.

Select an official source by its one-word slug:

Terminal window
rvs art mirror select pypiorg
rvs pip install requests

Common official defaults are pypiorg, npmjs, and maven-central. When the matching mirror is already enabled for the selected account, native wrappers can use it without a saved target. You do not need to redeclare the source for every operation.

Add an official mirror to the active account when it is not yet available:

Terminal window
rvs art mirror create pypiorg --select

Create custom HTTPS sources in the Ravenstash webapp, where you can configure origin authentication, download hosts, and storage.

Select an existing custom mirror with:

Terminal window
rvs art mirror select --custom company-python

If the same custom name exists for more than one package format, add --format.

Select the mirror, then use normal rvs package commands:

Terminal window
rvs art mirror select pypiorg
rvs pip install requests
rvs art mirror select --custom company-python
rvs pip install internal-sdk

When several accounts are available, use the intended account before selecting its mirror:

Terminal window
rvs account switch AcmeHQ
rvs art mirror select pypiorg
rvs pip install requests

Use a mirror directly or through a repository

Section titled “Use a mirror directly or through a repository”

Select a mirror directly when a build only needs packages from that source. Connect a mirror to a private repository when one repository should provide both private packages and approved public dependencies. Connect it in the Ravenstash web app from the repository’s Upstreams tab, then select the repository as usual:

Terminal window
rvs art repo upstream list packages pypi
rvs art select platform/packages

Package-age settings hold back brand-new releases for the chosen period, reducing exposure during the riskiest first hours after publication. Set the appropriate minimum age for each direct mirror and private-repository connection in the web app. See Minimum package age.

Every remote cache has a permanent ID beginning with rc_. Use that ID to inspect a mirror:

Terminal window
rvs art mirror list
rvs art mirror list --format npm
rvs art mirror show rc_...

Clear only the active target:

Terminal window
rvs art clear

Change a mirror’s minimum package age or delete a mirror in the Ravenstash web app. Disconnect private repositories that use a mirror before deleting it. See Manage a private mirror.

A mirror cannot accept package publishing. If a mirror is selected, publish commands stop before running the package tool and ask for a private repository target:

Terminal window
rvs art select platform/releases
rvs twine upload dist/*