Cloud-init Configuration Notice

Cloud-init controls the metadata injected into your VM on first boot and whenever you regenerate the cloud-init drive. Use Apply to save and regenerate the ISO, Refresh to pull fresh values, and Reset to discard local edits. Manual installs (ISO workflows, Windows, or images without cloud-init) still require in-guest configuration.

Cloud-init Settings

Cloud-init Settings

Configure cloud-init metadata that is injected into your virtual machine. These settings control user accounts, SSH keys, hostname, networking, and other first-boot configuration.

Apply: Saves your changes and regenerates the cloud-init ISO drive. Changes take effect on the next boot.

Refresh: Reloads the current cloud-init configuration from the server, discarding any unsaved local changes.

Note: These values map directly to QEMU configuration parameters (`ciuser`, `nameserver`, `ipconfigX`, etc.). Cloud-init only works with supported operating systems and images.

These values map directly to the QEMU configuration (`ciuser`, `nameserver`, `ipconfigX`, etc.). Changes take effect on the next cloud-init run or boot.

Access & Credentials

Access & Credentials

Configure the default user account and SSH access for your virtual machine. These settings are used by cloud-init to create accounts and configure SSH keys on first boot.

Username: The default user account created by cloud-init. This user typically has sudo privileges.

Password: The password for the default user. Leave empty to disable password authentication (SSH keys only).

SSH Keys: Public SSH keys that will be authorized for the default user. One key per line.

Defaults used by cloud-init to create accounts and authorize SSH.

@if($this->accessCredentialsSynced) Synced @else Unsynced @endif
{{ $ciUser !== '' ? $ciUser : 'Template default (uses image-defined user)' }}

Use distro-friendly names. Leave blank to keep the template default.

Edit Cloud-init User

Leave blank to retain the template default user.

Cancel Done
@if(isset($server->password) && $server->password) •••••••••••• @else Password is sent via email on install. @endif @if(isset($server->password) && $server->password) @endif

Matches the Overview tab control. Use Save for database only, Save & Apply to push via cloud-init.

@if(isset($server->password) && $server->password)

Root Password

{{ $server->password }}
@endif

Edit Root Password

@if($passwordError)
{{ $passwordError }}
@endif

Save writes the password to the database. Save & Apply also pushes it to the hypervisor; reboot for cloud-init to configure the guest OS.

Cancel Save Save & Apply
@forelse($sshKeys as $keyIndex => $key)
{{ $key }}

SSH Public Key

{{ $key }}
@empty

No user-provided keys. The default management key remains in place.

@endforelse
Add Key

Add as many keys as needed. The platform management key is always kept but never shown.

Add SSH Public Key

Cancel Add Key

Runs apt/yum update && upgrade when cloud-init executes. Enable only if your template supports unattended upgrades.

Network Configuration

Network Configuration

Configure network interfaces for your virtual machine. Each network card corresponds to an ipconfigX parameter in the QEMU configuration, allowing you to set IPv4 and IPv6 addresses independently.

IP Configuration: Each network interface can have separate IPv4 and IPv6 configurations. Use CIDR notation (e.g., 192.168.1.100/24) for IP addresses.

Gateway: The default gateway for each IP version. Leave empty to use the default gateway from the network configuration.

Note: Changes take effect on the next cloud-init run or VM boot. Multiple network interfaces can be configured, each with its own IP configuration.

Each card corresponds to an ipconfigX. Configure IPv4 and IPv6 independently.

{{ count($networks) }} interfaces
@foreach($networks as $index => $network)
{{ $network['key'] }}

Network Device: NET{{ str_replace('ipconfig', '', $network['key']) }}

{{ !empty($network['ip']) ? $network['ip'] : '—' }}
{{ !empty($network['gw']) ? $network['gw'] : '—' }}
{{ !empty($network['ip6']) ? $network['ip6'] : '—' }}
{{ !empty($network['gw6']) ? $network['gw6'] : '—' }}
@if(($network['dhcp'] ?? false))
DHCP: Enabled
@endif

Leave fields blank to remove static addressing. If both IPv4 fields are empty, cloud-init omits the IPv4 stanza.

@endforeach

Edit Network Configuration

Leave fields blank to remove static addressing. If both IPv4 fields are empty, cloud-init omits the IPv4 stanza.

Cancel Save

DNS Settings

DNS Settings

Configure DNS (Domain Name System) settings for your virtual machine. These settings control how the guest OS resolves domain names to IP addresses.

Search Domain: The default domain suffix appended to hostnames that don't contain a domain. For example, with "example.com" as search domain, "server" resolves to "server.example.com".

Name Servers: DNS servers used for name resolution. Multiple servers can be specified, and they will be tried in order. Common options include Google DNS (8.8.8.8, 8.8.4.4) or Cloudflare DNS (1.1.1.1, 1.0.0.1).

Note: These values map to the searchdomain and nameserver parameters in the QEMU cloud-init configuration. Changes take effect on the next cloud-init run.

Configures searchdomain and nameserver values.

@if($this->dnsSettingsSynced) Synced @else Unsynced @endif
{{ $dnsDomain !== '' ? $dnsDomain : 'Not configured (system default will be used)' }}

Appended to short hostnames for resolution.

Edit DNS Domain

Leave blank to use system default. Appended to short hostnames for resolution.

Cancel Done
@forelse($dnsServers as $dnsIndex => $resolver)
{{ $resolver }}
@empty

No resolvers configured. System defaults will apply.

@endforelse
Add Nameserver

Entries are applied in order. Add one IPv4/IPv6 resolver per line.

Add DNS Nameserver

Cancel Add Nameserver

OS Type

OS Type

Specifies the operating system type for cloud-init metadata generation. This setting helps cloud-init apply the correct configuration format and optimizations for your guest OS.

Linux: Standard Linux distributions (Ubuntu, Debian, CentOS, etc.). Uses standard cloud-init configuration format.

Windows: Windows operating systems. Note that Windows does not natively support cloud-init, so this setting may have limited effect.

Note: This value maps to the ostype parameter in the QEMU configuration. It primarily affects how cloud-init metadata is formatted and which optimizations are applied.

Controls the ostype option used when generating cloud-init media.

@if($this->osTypeSynced) Synced @else Unsynced @endif

Determines whether the guest receives nocloud or config-drive metadata. Choose the entry that matches your template.

Tip: Pick a Windows option only for cloud-ready Windows images (cloudbase-init). Using a Windows entry on Linux templates prevents the nocloud ISO from mounting.
Refresh Reset Apply & Regenerate