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.
Wire it up
Section titled “Wire it up”-
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.
-
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"} -
Save the runner profile. New runners inherit the variables, so every
pip installresolves against your mirror.
What not to put here
Section titled “What not to put here”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.
Related
Section titled “Related”- Custom environment variables — validation rules and merge order.
- Caching — the
/cachevolume the proxy stacks on top of. - Writing workflows — what changes when a job runs on a Runaway runner.