Optional, modify netplan to set IPv4 static.
In /etc/netplan/50-cloud-init.yaml
remove “dhcp” on v4
add gateway4 and your IPv4 to addresses
Then run
netplan apply
Add Incus repo
mkdir -p /etc/apt/keyrings/ && wget -O /etc/apt/keyrings/zabbly.asc https://pkgs.zabbly.com/key.asc
sh -c 'cat <<EOF > /etc/apt/sources.list.d/zabbly-incus-lts-6.0.sources
Enabled: yes
Types: deb
URIs: https://pkgs.zabbly.com/incus/lts-6.0
Suites: $(. /etc/os-release && echo ${VERSION_CODENAME})
Components: main
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/zabbly.asc
EOF'
Install Incus
apt-get update && apt-get install incus -y
Configure Storage
You can just run with the defaults, however running a filesystem in a filesystem is costing performance.
I setup my dedi at OVH with 50GB for the OS itself and left the rest unpartitioned.
sudo parted /dev/sda mkpart zfs-pool 103448576s 2056573575s sudo parted /dev/sdb mkpart zfs-pool 103448576s 2056573575s sudo zpool create -f -o feature@encryption=enabled -O encryption=aes-256-gcm -O keylocation=prompt -O keyformat=passphrase tank mirror /dev/sda3 /dev/sdb4
This will setup a 1TB big, ZFS, mirrored and encrypted volume.
Configure Incus
incus admin init
Select ZFS, if its asking to create a new one, say no and enter the name of the zfs pool instead.
Launch your first VM
incus launch images:alpine/3.23/cloud test --device root,size=50GiB --config limits.cpu=2 --config limits.memory=4096MiB --vm
Add another NIC for IPv6 support
incus config device add test eth1 nic nictype=routed parent=enp1s0f0 ipv6.address=2402:xxxx:xxxx:xxx::5