OS templates
Every VM starts from a cloud image of the system you pick in the wizard. We build these images from the official releases and rebuild them every week, so a new server comes up with current packages and does not spend its first minutes on updates.
Available systems
| System | Versions |
|---|---|
| Ubuntu | 26.04, 24.04 |
| Debian | 13 |
| AlmaLinux | 10 |
| Rocky Linux | 10 |
| Fedora | 44 |
| CentOS Stream | 10, 9 |
| Alpine | 3.23 |
| Arch Linux | rolling |
| openSUSE Leap | 16.0 |
| Oracle Linux | 10 |
The list is the same one the Cloud Panel wizard shows and changes together with it. A system that is not here can be installed from your own ISO.
What every image has
- The user
scampwith passwordless sudo. Sign in with the SSH key or the password you set when creating the VM. - Package repositories pointed at our mirror,
mirror.serverscamp.com. Installs and updates come from inside our network and do not wait on public mirrors. - The QEMU guest agent, running from the first boot.
- English as the default locale. Ubuntu, Debian and the RHEL family also carry every other locale, so switching language needs no extra packages.
How the images stay current
Once a week we take the latest official cloud image of each system and apply every pending update.
To use the official mirrors instead, change the repository address in /etc/apt/sources.list.d or /etc/apt/mirrors, /etc/yum.repos.d, /etc/zypp/repos.d, /etc/pacman.d/mirrorlist or /etc/apk/repositories.
User data
When you create a VM from a template you can pass user data, in the wizard under User data or in the user_data field of the API. It runs once, on the first boot, and takes up to 64 KB. VMs started from an ISO, a snapshot or a backup do not use it.
Two formats are accepted, told apart by the first line.
cloud-config
Starts with #cloud-config and is merged with our own settings. Where both set the same key, yours wins, and your runcmd commands run after ours. The package lists are refreshed before your packages are installed.
#cloud-config
packages:
- nginx
- git
write_files:
- path: /var/www/html/index.html
content: |
hello from user data
runcmd:
- systemctl enable --now nginx
Shell script
Starts with #!. It is saved on the VM and run as root after all our setup is done, so the network, the scamp user and the repositories are already in place.
#!/bin/bash
apt-get install -y docker.io
usermod -aG docker scamp
The output of both formats lands in /var/log/cloud-init-output.log on the VM, the first place to look when something did not happen.