- Home
- Package Registries
- pypiserver
pypiserver
What it is
pypiserver is a free, open-source package index that lets users host Python packages on their own server and access them with tools such as pip and twine. It serves files from regular directories, including wheels, bdists, eggs, and accompanying PGP signatures. Packages can be added with pip, setuptools, twine, or pypi-uploader, or copied to the server with scp. Upload access can use an Apache htpasswd file, and API users can configure custom authentication callables. The maintainers advise protecting package uploads with a password. The service can run as a WSGI application, and its documentation covers Docker, nginx, Apache, gunicorn, Paste, and other WSGI servers. A default health endpoint returns HTTP 200 when the service is up. The current version supports Python 3.10+ and PyPy3. Its API covers the operations needed by common package tools, rather than the full PyPI API. The documentation also says accepted documentation uploads are not saved to disk. For HTTPS, the project recommends placing pypiserver behind a reverse proxy.
For and against
For
- Works with pip and twine as a package index.
- Supports wheels, bdists, eggs, and PGP signatures.
- Offers several package upload methods.
- Includes a health endpoint for checking service status.
- Can run as a WSGI application.
Against
- Implements only part of the PyPI API.
- Accepted documentation uploads are not saved to disk.
- The current version supports Python 3.10+ and PyPy3.
- Package uploads should be password-protected.
The verdict
pypiserver provides a focused, self-hosted index for serving Python packages through familiar packaging tools. Its limited API and unsaved documentation uploads are important constraints to consider when planning a deployment.
Who it suits
pypiserver suits developers or teams who want to maintain a self-hosted index for their Python packages. It may fit deployments using standard packaging tools and a regular directory for package files.
Plans and prices
pypiserver
Open-source package server; self-hosted; minimal PyPI-compatible API
Read 10 Oct 2026 · github.com
On the record
- API and servers
- Its API returns a WSGI application that can be run with supported or user-chosen WSGI servers.github.com · read 10 Oct 2026
- API limit
- pypiserver implements only enough of the PyPI API for easy_install, pip install, and search, rather than the full API.github.com · read 9 Oct 2026
- Authentication
- Uploads can be protected with Apache htpasswd authentication, and API users can configure a custom authentication callable.github.com · read 10 Oct 2026
- Clients
- Standard Python packaging tools including pip and twine can use it as a package index.github.com · read 9 Oct 2026
- Deployment
- The project publishes Docker images for main branch pushes and dev, alpha, beta, and final releases.github.com · read 10 Oct 2026
- Docker
- Official Docker images are built for main pushes and development, prerelease, and final releases.github.com · read 9 Oct 2026
- Documentation limitation
- It accepts documentation uploads but does not save them to disk.github.com · read 9 Oct 2026
- Health checks
- It provides a default /health endpoint that returns HTTP 200 when the service is up and supports a configurable endpoint.github.com · read 9 Oct 2026
- HTTPS
- The documentation recommends putting pypiserver behind a reverse proxy to provide HTTPS.github.com · read 9 Oct 2026
- Integrations
- The documentation shows integration with pip, easy_install, setuptools, twine, Docker, and reverse proxies including Nginx and Traefik.github.com · read 10 Oct 2026
- Intended users
- The project describes itself as a self-hosted package index for users who want to serve their own Python packages.github.com · read 9 Oct 2026
- License
- The project’s remaining code is distributed under the zlib/libpng license, and its bundled Bottle copy is MIT-licensed.github.com · read 10 Oct 2026
- Limitations
- It does not implement the full PyPI API and documents that it accepts documentation uploads but does not save them to disk.github.com · read 10 Oct 2026
- Package formats
- It supports wheels, source distributions, eggs, and accompanying PGP signatures.github.com · read 10 Oct 2026
- Platform support
- The README includes Windows service instructions using NSSM and systemd service instructions for Linux.github.com · read 10 Oct 2026
- Purpose
- pypiserver is a minimal PyPI-compatible server for uploading and downloading Python packages with pip or easy_install.github.com · read 10 Oct 2026
- PyPI compatibility
- It implements the PyPI interfaces needed for standard packaging tools such as pip and twine to use it as a package index.github.com · read 10 Oct 2026
- Python support
- The current version works with Python 3.10+ and PyPy3; older Python versions are not tested and the 1.x series is unsupported.github.com · read 10 Oct 2026