Prokki is a lightweight, blazing-fast reverse proxy cache for Python package indexes (like PyPI).
It acts as an middleman between your Python package installer (e.g., pip
, uv
or poetry
) and the public index,
reducing bandwidth usage, improving install speeds, and enhancing reliability in CI/CD pipelines.
- Create a configuration file,
config.toml
for example:
host = "0.0.0.0"
port = 8080
cache = "index-cache"
log.severity = "Info"
[[index]]
name = "pypi"
url = "https://pypi.org/simple"
[[index]]
name = "torch-cu118"
url = "https://download.pytorch.org/whl/cu118"
- Create a volume for packages (you can also mount a folder instead):
docker volume create prokki-packages-cache
- Start Prokki:
docker run \
--detach \
--name prokki \
--publish 5000:8080 \
--volume prokki-packages-cache:/index-cache \
--volume $(pwd)/config.toml:/config.toml \
ghcr.io/senysenyseny16/prokki
By default it:
- listens on port 8080 (in this example, it's mapped to port 5000)
You can view available options using the following command:
docker run -it --rm ghcr.io/senysenyseny16/prokki --help
- Specify it as the index for your package manager; in this example,
uv
is used:
uv pip install torch --index http://<host>:<port>/<index>