PyPI via devpi
The /cache volume keeps pip’s download cache warm on a single host.
devpi is a different layer — a PyPI proxy and private
index that stacks on top of the filesystem cache.
A devpi proxy is worth running when you want to:
- Share one mirror across hosts. Every runner pulls through the same index instead of each host re-fetching wheels.
- Serve private packages. devpi hosts your own packages next to the public ones it mirrors.
- Survive a PyPI outage. Once a wheel is cached, jobs install it even when the public index is unreachable.
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 scale set’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 scale set. 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.