Skip to content

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/+api

User 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/pypi

Index Management

DevPI uses a hierarchy of indexes:

  • root/pypi — Mirror of pypi.org (upstream)
  • Custom indexes inherit from root/pypi and overlay with private packages
bash
# Create a team index
devpi index -c root/internal bases=root/pypi

Configuration

Environment variables in env/devpi.env:

VariableDescriptionDefault
DEVPI_PASSWORDRoot admin passwordchangeme
DEVPI_PORTInternal port3141

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/

hochguertel.work Registry Platform