Skip to main content
VM scripts automate the creation of virtual machines in Proxmox VE. These scripts handle downloading OS images, configuring VM settings, and setting up initial configurations.

Available VM Categories

Linux VMs

Debian, Ubuntu, Arch Linux, and general-purpose Linux VMs

Home Assistant OS

Home Assistant Operating System for home automation

Network Appliances

OPNsense, OpenWrt, MikroTik, and other network solutions

Storage & Apps

TrueNAS, Nextcloud, ownCloud, and other specialized VMs

All Available VM Scripts

Linux Operating Systems

ScriptDescriptionVersion
debian-vm.shDebian 12 (Bookworm) VM12
debian-13-vm.shDebian 13 (Trixie) VM13
ubuntu2204-vm.shUbuntu 22.04 LTS (Jammy) VM22.04
ubuntu2404-vm.shUbuntu 24.04 LTS (Noble) VM24.04
ubuntu2504-vm.shUbuntu 25.04 (Plucky) VM25.04
archlinux-vm.shArch Linux VMRolling
docker-vm.shDocker-ready Linux VMLatest

Home Automation

ScriptDescription
haos-vm.shHome Assistant OS (standard)
pimox-haos-vm.shHome Assistant OS for Raspberry Pi

Network Appliances

ScriptDescriptionVersion
opnsense-vm.shOPNsense Firewall25.7
openwrt-vm.shOpenWrt RouterLatest
mikrotik-routeros.shMikroTik RouterOS CHRLatest

Storage & Cloud Solutions

ScriptDescription
truenas-vm.shTrueNAS CORE storage solution
nextcloud-vm.shNextcloud file sharing platform
owncloud-vm.shownCloud file sharing platform
umbrel-os-vm.shUmbrel OS home server

How VM Scripts Work

1

Download the Script

VM scripts are executed directly from the Proxmox VE shell using bash.
2

Interactive Configuration

Each script presents an interactive menu to configure:
  • VM ID
  • Hostname
  • CPU cores
  • RAM allocation
  • Disk size
  • Network settings
  • Additional options specific to the VM type
3

Automated Installation

The script automatically:
  • Downloads the OS image
  • Creates the VM with specified settings
  • Configures initial setup
  • Starts the VM (optional)
4

Post-Installation

Access the VM console or web interface to complete any remaining setup.

General Usage Pattern

All VM scripts follow this standard execution pattern:
bash -c "$(wget -qLO - https://github.com/community-scripts/ProxmoxVE/raw/main/vm/SCRIPT-NAME.sh)"
Replace SCRIPT-NAME.sh with the actual script filename from the tables above.

VM vs CT (Container)

  • Need full kernel control
  • Running non-Linux operating systems
  • Require complete hardware virtualization
  • Need specific kernel modules
  • Running production network appliances
  • Running Linux applications
  • Need better performance and lower overhead
  • Want faster startup times
  • Running multiple instances of same service
  • Development and testing environments

Common Configuration Options

Most VM scripts support these configurable options:
  • VM ID: Unique identifier (100-999999)
  • Hostname: VM name
  • CPU Cores: Number of virtual CPU cores
  • RAM: Memory allocation in MB/GB
  • Disk Size: Primary disk size
  • Bridge: Network bridge (vmbr0, vmbr1, etc.)
  • MAC Address: Automatically generated or custom
  • Start on Boot: Auto-start VM with Proxmox
  • Start after Creation: Immediately start the VM

Advanced Features

VLAN Support

Many VM scripts support VLAN tagging for network isolation:
# During interactive setup, specify VLAN tag (e.g., 10, 100)

SSH Key Injection

Some Linux VM scripts support SSH key injection during creation for passwordless access.

Cloud-Init Support

Certain VM scripts leverage cloud-init for automated configuration.

Requirements

  • Proxmox VE 7.0 or higher
  • Sufficient storage space for VM images
  • Network connectivity to download images
  • Appropriate CPU architecture (most require x86_64/AMD64)

Next Steps

Linux VMs

Explore Linux VM options

Home Assistant

Set up home automation

Network Appliances

Deploy network solutions

Build docs developers (and LLMs) love