Skip to main content
vee
Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Toggle Dark/Light/Auto mode Back to homepage
Edit page

Templates

vee ships with built-in templates that configure QEMU arguments, cloud-init, networking, and disk layout for common VM types. Pass one with --template; ubuntu-server is the default.

TemplateDescription
ubuntu-serverUbuntu 24.04 LTS, UEFI, user-mode NIC (default)
serveropenssh + ufw + fail2ban, --distro ubuntu/arch/fedora
desktopGNOME + Mesa, accelerated virtio-gpu, --distro fedora/ubuntu
devboxDocker + zsh, --distro ubuntu/arch/fedora
dockerAlpine Linux, Docker daemon on tcp://localhost:2375
gaming-archArch + KDE Plasma + Steam, virgl or GPU passthrough
gaming-bazziteBazzite (Fedora Atomic) gaming ISO, KDE Plasma
gamingLegacy alias for gaming-arch
passthroughRaw NVMe boot + GPU passthrough, SPICE, virtiofs
truenasTrueNAS SCALE, AHCI OS disk, bridge NIC, SPICE
torrentLightweight qbittorrent-nox, optional VPN kill-switch
jellyfinJellyfin, NFS/SMB/host-dir/block/USB media, mDNS
windowsWindows, UEFI secure boot, TPM 2.0
github-runnerSelf-hosted Actions runner, outbound HTTPS

Overriding defaults

Each template sets its own memory/CPU/disk defaults. Override any of them per VM:

vee create big --template devbox --memory 16G --cpus 8 --disk 100G

vm.yaml

Every VM’s configuration is stored in ~/.vee/vms/<name>/vm.yaml. You can edit it directly (or with vee config) to change any setting after creation — see vm.yaml.

name: myvm
template: ubuntu-server
memory: 2G
cpus: 2
ssh_user: ubuntu
guest_agent: true