## Summary - Delete `docs/zk/` directory - all useful content migrated to structured docs - Delete `docs/README.md` - `docs/index.md` is now the documentation root - Add `devpi` reference card and `use-pypi-proxy` how-to guide - Add maintenance notes to `indri` reference (sleep prevention, passwordless sudo) - Add iCloud Photos backup note to `borgmatic` reference - Rewrite `zk-docs` mise task to prime AI context with key docs instead of legacy cards - Update `CLAUDE.md` and `README.md` to remove zk references - Update `exploring-the-docs` with AI context priming section This completes the Diataxis documentation restructuring. All six phases are now done. ## Deployment and Testing - [x] Pre-commit hooks pass (including doc-links validator) - [ ] Build and deploy to docs.ops.eblu.me to verify rendering 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: https://forge.ops.eblu.me/eblume/blumeops/pulls/97
1 KiB
1 KiB
| title | tags | ||
|---|---|---|---|
| use-pypi-proxy |
|
Use the PyPI Proxy
How to configure clients and publish packages to devpi.
Configure pip
Create ~/.config/pip/pip.conf:
[global]
index-url = https://pypi.ops.eblu.me/root/pypi/+simple/
trusted-host = pypi.ops.eblu.me
Track with chezmoi:
chezmoi add ~/.config/pip/pip.conf
Upload Packages
# Build and publish with uv
cd ~/code/personal/your-package
uv build
uv publish --publish-url https://pypi.ops.eblu.me/eblume/dev/
# First time: uv will prompt for credentials
Create Users/Indices
# Login as root
uvx devpi use https://pypi.ops.eblu.me
uvx devpi login root
# Create user (prompts for password - store in 1Password)
uvx devpi user -c USERNAME email=EMAIL
# Create index inheriting from PyPI mirror
uvx devpi index -c USERNAME/dev bases=root/pypi
Verify Cache
# Check if devpi is caching
curl -s https://pypi.ops.eblu.me/+api | jq
Related
- devpi - Service reference