Skip to content

PyPI via devpi

The /cache volume keeps pip’s download cache warm on a single host. devpi is a PyPI proxy and private index that sits on top of that filesystem cache, not a replacement for it. Run one when you want to:

  • Share one mirror across hosts, so each host stops re-fetching wheels.
  • Serve private packages next to the public ones devpi mirrors.
  • Keep installing a wheel during a PyPI outage. Once it’s cached, the public index can be unreachable and jobs still pull it.

Running devpi is your job; see the devpi quickstart. Once it’s reachable, point Runaway at it through custom env.

  1. Set the index URL in custom env. Open the runner profile’s custom-env field and add:

    {
    "PIP_INDEX_URL": "http://devpi.lan:3141/root/pypi/+simple/"
    }

    Replace the host, port, and index path with your own devpi index.

  2. Add a trusted host for plain HTTP. If your devpi serves over plain HTTP on the LAN (no TLS), pip will refuse it unless you mark it trusted:

    {
    "PIP_INDEX_URL": "http://devpi.lan:3141/root/pypi/+simple/",
    "PIP_TRUSTED_HOST": "devpi.lan"
    }
  3. Save the runner profile. New runners inherit the variables, so every pip install resolves against your mirror.

Custom env is plaintext. If your devpi index requires credentials, those are secrets and don’t belong in custom env — see Custom environment variables. An unauthenticated LAN index needs only the URL.