DevPI is a PyPi server. It allows to store and publish your private Python packages without using PyPi public repository
The MIT-licensed devpi system features a powerful PyPI-compatible server and a complementary command line tool to drive packaging, testing and release activities with Python.
- fast PyPI mirror: use a local self-updating pypi.org
caching mirror which works with
easy_install. After files are first requested can work off-line and will try to re-check with pypi every 30 minutes by default. Since version 3.0 you can generically mirror from pypi-compatible servers. See Quickstart: running a pypi mirror on your laptop.
- uploading, testing and staging with private indexes: upload Python archives and documentation to your own indexes. Trigger testing of your uploaded release files with tox and record them with each release file. When ready push your successfully tested release files and documentation to another index (staging) or to pypirc-configured external indexes such as https://pypi.org . See Quickstart: uploading, testing, pushing releases.
- index inheritance: Each index can inherit packages from another
index, including the pypi cache
root/pypi. This allows to have development indexes that also contain all releases from a production index. All privately uploaded packages will by default inhibit lookups from pypi, allowing to stay safe from an attacker who could otherwise upload malicious release files to the public PyPI index.
- web interface and search: By installing the Web interface and search plugin package you can navigate indexes and search through release metadata and documentation of your private indexes.
- replication: Keep one or more real-time replica to speed up access, keep a failover server and to distribute the devpi system across your organisation. There is json status information about master/replica sites for monitoring.
- importing/exporting: To upgrade to a newer version, devpi-server supports exporting server state from an old version and importing that from a new devpi-server version.
- Jenkins integration: You can set a per-index Jenkins trigger for automatically tox-testing any uploaded release file and query releases for their test results.