Skip to content

# Virtual Machine Configuration Guide

When you click the + button in the Control Center of VirtualProg, you are presented with a comprehensive configuration screen to set up a new virtual machine. The configuration screen is organized into several sections accessible via a sidebar. Below is a description of each section along with a link to its respective documentation file.

> 📸 Screenshot:

## Sidebar Sections

### 1. General

Configure the name, description, operating system type (Linux or macOS), headless mode, full screen behavior, and nested virtualization options.

### 2. CPU & Memory

Set the number of virtual CPU cores, memory size (in MB), and enable memory ballooning for better memory management.

### 3. Display

Configure virtual display resolution, DPI, and whether to use host display or force resolution.

### 4. Sound

Enable or disable virtual audio input and output devices.

### 5. Network

Add and configure virtual network adapters, choose network type (NAT, bridged, etc.), and set custom MAC addresses.

### 6. Disk

Add and configure virtual hard disks including size, interface type (VirtIO or NVME), caching and sync modes.

### 7. Network Block Device

Attach network-backed block devices using NBD URLs with optional timeout, read-only mode, and disk interface.

### 8. CD/DVD

Attach ISO images as virtual CD/DVD drives with interface options like USB or VirtIO.

### 9. Shared Folder

Mount host directories inside the guest with read-only options and custom mount names.

### 10. Serial Port

Add serial ports in console or file output mode. Useful for debugging and headless setups.

### 11. Boot Disk

Select the disk from which the virtual machine should boot, or set it to auto.

### 12. Security

Configure clipboard sharing, screenshot access, screen recording, VM password protection, and usage stats.

### 13. Auto Snapshots

Enable and schedule automatic snapshots of the VM for recovery or backup purposes.

### 14. Schedule

Enable and schedule auto start and shutdown of the VM at specific times.

### 15. Startup & Shutdown

Configure auto start, startup delay, sleep and shutdown behaviour, window close behaviour, and auto pause.

### 16. Webhooks

Configure HTTP endpoints to notify external services when the VM starts, stops, pauses, or is suspended.

### 17. Restore Image (macOS)

Choose a macOS IPSW restore image to use for macOS installations.

### 18. Input Devices (macOS)

Set the type of virtual keyboard and mouse (Mac or Legacy USB).

### 19. Provisioning (macOS, macOS 27+)

Automate first-boot account setup for macOS guests — set the account name, username, password, auto login, and remote login without going through the setup assistant.

### 20. Boot Image (Linux)

Specify a Linux kernel and initial RAM disk for custom Linux booting.

### 21. Rosetta (Linux)

Enable Rosetta support for running x86_64 binaries on ARM-based macOS hosts.

## Dynamic Configuration

At the bottom left of the configuration screen, you will find + and 🗑 Trash buttons:

- Clicking the + button opens a menu that lets you add additional components to your VM, including:

  - Network
  - Disk
  - Network Block Device
  - CD/DVD
  - Shared Folder
  - Serial Port

- The 🗑 Trash button allows you to remove any of the above items that you've added.

- Additionally, the Display section can be deleted, which is especially useful when configuring a virtual machine to run in headless mode (without a graphical user interface).

These controls make it easy to tailor your VM's configuration to exactly what you need.