Automated VM Deployment Panel for Proxmox VE
Depl0y is a free, open-source web-based control panel that simplifies the deployment and management of virtual machines on Proxmox VE infrastructure. With an intuitive interface and powerful automation features, Depl0y makes VM provisioning accessible to everyone.
- β ISO Downloads Actually Work - Fixed with standalone scripts, downloads no longer hang or fail
- π Real-Time Status - Visual indicators show downloading, processing, and completion status
- π€ Alphabetical Sorting - ISOs automatically sorted by name for easy browsing
- β‘ Background Processing - System stays fully responsive during multi-GB ISO downloads
- π¨ Status Badges - Color-coded indicators (Downloading/Processing/Available/Error)
- Automated VM Deployment - Deploy Ubuntu, Debian, CentOS, Rocky Linux, Alma Linux, and Windows VMs with a few clicks
- β‘ Cloud Images - Ultra-fast 30-second deployments using pre-configured OS images (Ubuntu, Debian)
- Cloud-Init Integration - Automatic configuration of Linux VMs with cloud-init
- Multi-Hypervisor Support - Manage multiple Proxmox VE hosts and clusters
- Resource Management - Real-time monitoring of CPU, memory, and disk usage across your infrastructure
- ISO Management - 19 pre-populated ISOs or upload/download custom images with automatic checksum verification
- Update Management - One-click system updates for deployed Linux VMs
- QEMU Guest Agent - Automatic installation and configuration
- SSH Access - Built-in SSH key management and password-based authentication
- Network Configuration - Static IP or DHCP configuration with cloud-init
- Partition Management - Single large partition or custom schemes for Linux deployments
- Multi-User Support - Role-based access control (Admin, Operator, Viewer)
- 2FA Authentication - TOTP-based two-factor authentication
- Encrypted Credentials - All sensitive data is encrypted at rest
- Audit Logging - Track all user actions and system changes
- Modern UI - Responsive, beautiful interface built with Vue.js
- Real-time Status - Live VM status updates and resource monitoring
- Dashboard Analytics - Overview of your entire virtualization infrastructure
- RESTful API - Complete API for automation and integration
Real-time overview of your infrastructure with resource usage, VM status, and quick actions
Manage all your VMs with status monitoring and one-click controls
Intuitive VM creation wizard with cloud image support for 30-second deployments
Monitor multiple Proxmox nodes and datacenters from a single interface
Pre-configured OS images for instant VM deployment
Configure automatic VM failover for business continuity
- A server running Linux (Ubuntu 22.04+, Debian 11+, or similar)
- At least 2GB RAM and 20GB disk space
- Python 3.10+, Node.js 18+, and nginx
- Access to one or more Proxmox VE hosts
The fastest way to install Depl0y is with the automated installer:
curl -fsSL http://deploy.agit8or.net/downloads/install.sh | sudo bashThis will:
- Install all dependencies (Python, Node.js, nginx, SQLite)
- Set up the Depl0y backend and frontend
- Create a systemd service for automatic startup
- Configure nginx as a reverse proxy
- Complete in approximately 30 seconds
-
Access the web interface
- Open your browser and navigate to
http://your-server-ip - Default credentials:
admin/admin - IMPORTANT: Change the default password immediately!
- Open your browser and navigate to
-
Enable 2FA (Recommended)
- Go to "User Profile" and enable TOTP authentication
- Scan the QR code with your authenticator app
-
Add your first Proxmox host
- Go to "Proxmox Hosts" in the sidebar
- Click "Add Host" and enter your Proxmox credentials
- Test the connection
-
Deploy your first VM
- Go to "Virtual Machines"
- Click "Create VM"
- Fill in the required information and deploy!
For manual installation or to review the installer script, see the install.sh file or visit the documentation.
The installer automatically configures environment variables during installation. For manual configuration, set:
# Security (automatically generated during installation)
SECRET_KEY=your_jwt_secret_key_minimum_32_chars
ENCRYPTION_KEY=your_fernet_encryption_key
# Database (default: SQLite)
DATABASE_URL=sqlite:////var/lib/depl0y/db/depl0y.db
# Application
DEBUG=false
LOG_LEVEL=INFOBy default, Depl0y stores data in:
- ISOs:
/var/lib/depl0y/isos - Cloud images:
/var/lib/depl0y/cloud-images - Cloud-init configs:
/var/lib/depl0y/cloud-init - SSH keys:
/var/lib/depl0y/ssh_keys - Logs:
/var/log/depl0y/
These can be customized in the .env file.
Depl0y consists of three main components:
-
Backend API (FastAPI + Python)
- RESTful API
- Proxmox integration via proxmoxer
- Database management with SQLAlchemy
- Authentication and authorization
- Runs as systemd service on port 8000
-
Frontend (Vue.js 3)
- Single-page application
- Responsive design
- Real-time updates
- Served by nginx as reverse proxy
-
Database (SQLite)
- Stores users, VMs, hosts, and configuration
- Lightweight and embedded
- Automated backups recommended
Once installed, API documentation is available at:
- Swagger UI:
http://your-server-ip/api/v1/docs - ReDoc:
http://your-server-ip/api/v1/redoc
Cloud images provide 30-second deployments after initial setup:
One-Time Setup (1 minute):
- Go to Settings > Cloud Image Setup
- Copy the setup command shown
- SSH to your Depl0y server and run:
sudo /tmp/enable_cloud_images.sh - Enter your Proxmox root password when prompted
- Done! All cloud images are now enabled
Creating VMs:
- Navigate to "Virtual Machines" > "Create VM"
- Select your Proxmox host and node
- Choose "Cloud Image (Fast)" installation method
- Select a cloud image (Ubuntu 24.04, Debian 12, etc.)
- Configure resources (CPU, RAM, disk)
- Set network configuration (DHCP or static IP)
- Enter credentials for the VM
- Click "Deploy"
First deployment: ~5-10 minutes (creates template) All subsequent deployments: ~30 seconds β‘
The VM will be automatically created with:
- OS fully installed and configured
- Your credentials already set up
- Network configured
- SSH server enabled
- Ready to use immediately
π Full guide: CLOUD_IMAGES_GUIDE.md
- Navigate to "Virtual Machines" > "Create VM"
- Select your Proxmox host and node
- Choose an OS type (Ubuntu, Debian, etc.)
- Configure resources (CPU, RAM, disk)
- Set network configuration (DHCP or static IP)
- Enter credentials for the VM
- Click "Deploy"
The VM will be automatically created with:
- Cloud-init configuration
- QEMU guest agent installed
- SSH server enabled
- User account configured
- First upload a Windows ISO to "ISO Images"
- Create a new VM and select Windows OS type
- Configure resources
- Deploy and complete Windows installation manually via VNC
- Select a VM from the list
- Click "Check Updates" to see available updates
- Click "Install Updates" to apply them
- View update history in the VM details
- Go to "Proxmox Hosts"
- Add your Proxmox VE hosts with credentials
- Poll hosts to refresh resource information
- View nodes and their current utilization
cd backend
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reloadcd frontend
npm install
npm run dev# Backend tests
cd backend
pytest
# Frontend tests
cd frontend
npm run testAfter making changes to the code, deploy them to production:
# Quick deploy with the deploy script
./deploy.sh
# Or deploy manually - see DEPLOYMENT.md for detailsπ Full deployment guide: DEPLOYMENT.md
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Please report security vulnerabilities to agit8or@agit8or.net with the subject line "Depl0y Security Vulnerability" (not via public issues).
See SECURITY.md for our complete security policy.
- Change default passwords immediately after installation
- Use strong, unique passwords
- Enable 2FA for all admin accounts
- Keep Depl0y updated to the latest version
- Use HTTPS in production (configure SSL certificates)
- Regularly backup your database
- Restrict network access to trusted IPs if possible
- Cloud images for ultra-fast deployment
- Template-based VM cloning
- Scheduled deployments
- VM snapshots management
- Backup automation
- Integration with monitoring tools (Prometheus, Grafana)
- Multi-language support
- Mobile app
- Ansible playbook execution
- Cost tracking and reporting
- API rate limiting
Cannot connect to Proxmox host
- Verify credentials are correct
- Check network connectivity
- Ensure Proxmox API is accessible
- Verify SSL certificate settings
VMs not starting
- Check Proxmox node has sufficient resources
- Verify ISO image is available
- Check VM logs in Proxmox
Database connection errors
- Verify database file exists at
/var/lib/depl0y/db/depl0y.db - Check file permissions (
depl0yuser needs read/write access) - Review backend logs:
sudo journalctl -u depl0y-backend
For more help, see docs/TROUBLESHOOTING.md or open an issue.
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with FastAPI
- Frontend powered by Vue.js
- Proxmox integration via proxmoxer
- Icons from various open-source projects
- Documentation: docs/
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Email: agit8or@agit8or.net
Created with β€οΈ by the Depl0y team and contributors.
Star this repo if you find it useful! β
Depl0y is lovingly crafted by Luna the dog π