- Shell 100%
| .gitignore | ||
| cloudinit.sh | ||
| LICENSE | ||
| README.md | ||
Proxmox Cloud-Init VM Creator - All-in-One
Single Script. Everything Included. Production Ready.
A complete all-in-one solution for automated creation, management, and maintenance of Cloud-Init VMs on Proxmox with user-friendly dialog interface.
⚡ Quick Start (90 Seconds)
# 1. Download
cd /opt && git clone <repo-url> proxmox-cloudinit && cd proxmox-cloudinit
# 2. Make executable
chmod +x proxmox-all-in-one.sh
# 3. Start
sudo ./proxmox-all-in-one.sh
Done! Menu will be displayed and you can create VMs immediately. 🚀
✨ Features
✅ Everything in ONE Script - Only proxmox-all-in-one.sh needed
✅ No Dependencies - Installs everything needed automatically
✅ 7 LTS Distributions - Ubuntu 20.04/22.04/24.04, Debian 11/12, CentOS 8/9
✅ Dialog Interface - Simple menus for everything
✅ 4 Pre-configured Templates:
- Web Server (Nginx + Security)
- Development (Docker + Python + Node.js)
- Database (PostgreSQL)
- Monitoring (Prometheus + Grafana)
✅ Complete VM Management:
- Create new VMs
- Create from templates
- Create backups
- Clone VMs
- Advanced tools & guides
✅ User-Friendly - Menus for everything, no CLI knowledge needed
✅ Secure - SSH-Keys, password hashing, Cloud-Init standards
✅ Robust - Comprehensive logging, error handling
📋 Requirements
- Proxmox VE 7.0 or higher
- Root or Sudo access
- Internet (for image download)
- ~10 GB free storage
- SSH-Key (Optional but recommended):
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
🎯 Main Menu
┌─────────────────────────────────────────┐
│ Proxmox Cloud-Init VM Creator v2.0 │
│─────────────────────────────────────────│
│ 1. Create New VM │
│ 2. Create VM from Template │
│ 3. Backup Existing VM │
│ 4. Clone Existing VM │
│ 5. Advanced Tools & Configuration │
│ 6. View Logs │
│ 7. System Information │
│ 8. Help & Documentation │
│ 9. Exit │
└─────────────────────────────────────────┘
🚀 Workflow Examples
Example 1: Nginx Web Server in 2 Min
sudo ./proxmox-all-in-one.sh
→ Option 2 (Templates)
→ Web Server (Nginx)
→ Enter VM Name
→ Confirm
→ Done! ✅
Example 2: Development VM
sudo ./proxmox-all-in-one.sh
→ Option 2 (Templates)
→ Development Environment
→ Enter VM Config
→ Done! ✅
Example 3: Custom VM
sudo ./proxmox-all-in-one.sh
→ Option 1 (Create New VM)
→ Go through all parameters:
- Select Node
- Select Storage
- Select Distribution
- VM Config (Name, ID, CPU, RAM, Disk)
- Packages (Checkboxes)
- Custom Packages (optional)
- MOTD (default or custom)
- User Config (SSH-Key or Password)
→ Summary Review
→ Confirm
→ Image download + VM creation
→ Done! ✅
📚 Supported Distributions (LTS Only)
| Distro | Release | EOL |
|---|---|---|
| Ubuntu 20.04 | April 2020 | April 2025 |
| Ubuntu 22.04 | April 2022 | April 2027 |
| Ubuntu 24.04 | April 2024 | April 2029 |
| Debian 11 | August 2021 | June 2026 |
| Debian 12 | June 2023 | June 2028 |
| CentOS Stream 8 | Sept 2019 | May 2024 |
| CentOS Stream 9 | May 2022 | May 2027 |
📦 Available Packages
The script offers 17+ pre-defined packages to choose from:
System Tools: curl, wget, git, htop, vim, nano, tmux, net-tools
SSH: openssh-server ✓, sudo ✓
Development: build-essential, python3, python3-pip, nodejs
Services: docker.io, nginx, apache2
Custom Packages: You can also add any other packages!
🎯 VM Templates
Web Server (Nginx)
Distribution: Ubuntu 22.04 LTS
CPU: 2 | RAM: 2 GB | Disk: 50 GB
Packages: nginx, curl, wget, htop, ufw, fail2ban, certbot
User: www-admin | Auth: SSH-Key
Development
Distribution: Ubuntu 24.04 LTS
CPU: 4 | RAM: 8 GB | Disk: 100 GB
Packages: git, vim, build-essential, python3, nodejs, docker.io, tmux, jq
User: developer | Auth: Password
PostgreSQL Database
Distribution: Debian 12
CPU: 4 | RAM: 8 GB | Disk: 100 GB
Packages: postgresql, postgresql-contrib, pgbackrest
User: dba | Auth: SSH-Key
Monitoring (Prometheus + Grafana)
Distribution: Ubuntu 22.04 LTS
CPU: 2 | RAM: 4 GB | Disk: 50 GB
Packages: prometheus, grafana-server, node-exporter
User: monitoring | Auth: SSH-Key
Web UI: http://VM-IP:3000 (admin/admin)
📝 VM Management Commands
# Show VM list
qm list
# Check VM status
qm status <VM-ID>
# Start/stop VM
qm start <VM-ID>
qm stop <VM-ID>
qm reboot <VM-ID>
# Serial console
qm terminal <VM-ID>
# VM configuration
qm config <VM-ID>
# Create backup
sudo ./proxmox-all-in-one.sh
→ Option 3 (Backup)
# Clone VM
sudo ./proxmox-all-in-one.sh
→ Option 4 (Clone)
# System info
pvesh get /nodes
pvesh get /storage
🔒 Security
SSH-Key Setup
# Generate key (if not present)
ssh-keygen -t ed25519 -N "" -f ~/.ssh/id_ed25519
# Show key
cat ~/.ssh/id_ed25519.pub
# In script: Enter SSH-Key path
~/.ssh/id_ed25519.pub
Best Practices
✅ Use SSH-Keys instead of password
✅ Disable root SSH login
✅ Enable firewall (UFW)
✅ Fail2Ban for attack protection
✅ Regular updates
✅ Create backups
🐛 Troubleshooting
"qm command not found"
# Solution: Script must run on Proxmox host
pveversion # Check Proxmox
"dialog not found"
Script installs it automatically on first start.
"Image download failed"
# Solution: Check internet connection
ping cloud-images.ubuntu.com
"VM won't start"
# Check logs
qm log <VM-ID>
qm terminal <VM-ID>
# SSH to VM
ssh ubuntu@<VM-IP>
cat /var/log/cloud-init.log
"Storage not found"
# Show available storage
pvesh get /storage
# Or in Proxmox UI
Datacenter → Storage
❓ FAQ
Q: Only one script?
A: Yes! proxmox-all-in-one.sh has everything built-in.
Q: Do I need to install other scripts?
A: No! Everything is in one file.
Q: Does this script cost anything?
A: No! MIT License - free & open source.
Q: Can I use it for production?
A: Yes! It uses Cloud-Init standards & best practices.
Q: How long does VM creation take?
A: ~5-10 min (depends on bandwidth & hardware).
Q: Can I add custom packages?
A: Yes! During script execution you'll have the option.
Q: Does it work on Windows Proxmox?
A: No, only on Linux-based Proxmox hosts.
Q: Can I create multiple VMs?
A: Yes! After each VM, the menu returns.
📊 Performance Tips
| Factor | Recommendation |
|---|---|
| Storage | SSD if possible |
| CPU | Min. 2 Cores per VM |
| RAM | Min. 2 GB per VM |
| Network | Virtio Driver |
| Disk | virtio-scsi |
📁 Project Structure
proxmox-cloudinit/
├── proxmox-all-in-one.sh ← The only script!
├── README.md ← This file
└── LICENSE ← MIT License
That's it! Only 2 files. That's all you need.
🔄 Typical Workflow
Start
↓
Display Menu
↓
User selects Option
↓
Dialog Inputs
↓
Configuration Summary
↓
Confirmation
↓
Automatic Creation:
- Image Download
- VM Creation
- Cloud-Init Setup
↓
SUCCESS! ✅
↓
Back to Menu
↓
Next VM or Exit
🎓 Learning Path
Level 1: Beginner (5 min)
1. ./proxmox-all-in-one.sh
2. Option 2 (Template)
3. Choose Template
4. Done!
Level 2: Intermediate (10 min)
1. Option 1 (Custom VM)
2. Go through all parameters
3. Select packages
4. Done!
Level 3: Advanced
1. Option 5 (Advanced Tools)
2. Use guides & info
3. Create multiple VMs
4. Backups & Cloning
🚀 Get Started!
# Start
cd /opt/proxmox-cloudinit
chmod +x proxmox-all-in-one.sh
sudo ./proxmox-all-in-one.sh
The menu will appear and you can create your first VM immediately! 🎉
📞 Support & Logs
# View logs
tail -f proxmox-cloudinit-*.log
# View last lines in script
sudo ./proxmox-all-in-one.sh
→ Option 6 (View Logs)
📜 License
MIT License - Free & open source for personal & commercial use.
📊 Script Info
- Version: 2.0
- Status: Production Ready ✅
- Size: ~32 KB
- Lines: ~850
- Functions: 50+
- Release: 2024-03-24
Good luck creating VMs! 🚀
Proxmox Cloud-Init Creator v2.0
All-in-One Edition
One Script. Everything Included.
Production Ready.