PyPI — DevOps Guide
Architecture
DevPI runs as a single container with devpi-server and devpi-web.
- Image: Custom build (
pypi/Dockerfile) - Components: devpi-server, devpi-web (UI), devpi-client
- Port: 3141 (internal)
- Storage: Bind mount at
data/pypi/
Management
bash
cd /opt/services/registries
# Start/stop
task up:pypi
task down:pypi
# Logs
task logs:pypi
# Health check
curl -sf https://pypi.registry.hochguertel.work/+apiUser Management
bash
# Install devpi-client
pip install devpi-client
# Connect to server
devpi use https://pypi.registry.hochguertel.work
# Login as root
devpi login root --password <admin-password>
# Create a user
devpi user -c myuser password=mypassword email=myuser@example.com
# Create an index for the user
devpi index -c myuser/stable bases=root/pypiIndex Management
DevPI uses a hierarchy of indexes:
root/pypi— Mirror of pypi.org (upstream)- Custom indexes inherit from
root/pypiand overlay with private packages
bash
# Create a team index
devpi index -c root/internal bases=root/pypiConfiguration
Environment variables in env/devpi.env:
| Variable | Description | Default |
|---|---|---|
DEVPI_PASSWORD | Root admin password | changeme |
DEVPI_PORT | Internal port | 3141 |
Backup
bash
# Backup entire DevPI data
tar -czf pypi-backup-$(date +%Y%m%d).tar.gz data/pypi/
# Or use devpi export
devpi use https://pypi.registry.hochguertel.work
devpi login root --password <password>
devpi export /tmp/devpi-export/