ProxBox - Your Proxmox toolbox for secure VM automation
ProxBox is a modern Python package and CLI tool for automating Proxmox VE operations with a focus on security, reliability, and operational excellence.
- π Template Creation - Automated Ubuntu cloud-init template creation from official images
- π₯οΈ VM Management - Clone, start, stop, and manage VMs with ease
- π Security First - Input validation, sanitization, and command injection prevention
- π Rich UI - Progress bars, colored output, and helpful error messages
- π Retry Logic - Automatic retry with exponential backoff for network operations
- β Type Safe - Full type hints and mypy compliance
- π§ͺ Well Tested - Comprehensive test suite with >80% coverage
- π Documented - Extensive documentation with examples
pip install proxbox# Create Ubuntu 22.04 LTS template
proxbox create-template jammy 9001 --ssh-key ~/.ssh/id_rsa.pub
# Create template with custom settings
proxbox create-template noble 9002 \
--name my-ubuntu-template \
--memory 4096 \
--disk-increase 50# Clone a VM from template and start it
proxbox create-vm 9001 190 my-ubuntu-vm --start
# Check VM status
proxbox status 190
# Stop a VM
proxbox stop 190
# Delete a VM (with confirmation)
proxbox delete 190Full documentation is available at: https://zerodaysec.github.io/proxmox-utilities
Configure via environment variables or .env file:
# SSH key for cloud-init
export PROXMOX_SSH_KEY_PATH="$HOME/.ssh/id_ed25519.pub"
# Storage configuration
export PROXMOX_DATA_STORE="local-lvm"
export PROXMOX_VM_BRIDGE="vmbr0"
# Template defaults
export PROXMOX_TEMPLATE_MEMORY_MB=2048
export PROXMOX_TEMPLATE_DISK_INCREASE_GB=30See Configuration Guide for all options.
Security is a top priority. This project includes:
- β Input validation and sanitization
- β Command injection prevention
- β No hardcoded secrets
- β Automated security scanning (Bandit, pip-audit)
- β Type safety with mypy
- β Comprehensive test coverage
See Security Documentation for details.
| Feature | Shell Scripts (v0.0.1) | Python Package (v0.1.0+) |
|---|---|---|
| Security | β Comprehensive | |
| Error Handling | β Minimal | β Robust |
| Testing | β None | β >80% coverage |
| Type Safety | β No | β Full type hints |
| Progress Tracking | β No | β Rich UI |
| Retry Logic | β No | β Automatic |
| Documentation | β Full docs site | |
| Package Management | β Manual download | β pip install |
git clone https://github.com/zerodaysec/proxmox-utilities.git
cd proxmox-utilities
pip install -e ".[dev,docs,security]"
pre-commit install# Run all tests
pytest
# Run with coverage
pytest --cov=src/proxbox --cov-report=html
# Run specific tests
pytest tests/test_template.py -v# Format code
black src/ tests/
# Lint
ruff check src/ tests/
# Type check
mypy src/
# Security scan
bandit -r src/# Serve locally
mkdocs serve
# Build
mkdocs buildSee CHANGELOG.md for version history and migration guides.
Contributions are welcome! Please see Contributing Guide for details.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the GNU General Public License v3.0 or later (GPLv3+).
See LICENSE for the full license text.
ZeroDay Security
- Email: jon@zer0day.net
- GitHub: @zerodaysec
- Proxmox VE team for excellent virtualization platform
- Ubuntu for cloud images
- Python community for amazing tools and libraries
- π Documentation
- π Issue Tracker
- π¬ Discussions
- π Security: security@zer0day.net
Made with β€οΈ by ZeroDay Security