No description
Find a file
2026-03-24 12:44:15 +01:00
.gitignore Initial commit 2026-03-24 12:40:37 +01:00
cloudinit.sh Initial commit 2026-03-24 12:40:37 +01:00
LICENSE Initial commit 2026-03-24 12:40:37 +01:00
README.md Initial commit 2026-03-24 12:40:37 +01:00

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.