Installation
Dicer runs on one Linux host, as a daemon, dicerd, managed by systemd, with
the dicer command line beside it. The install script builds both from
source and sets the daemon up.
Requirements
The host
- Linux on x86_64 or aarch64, with systemd.
- KVM:
/dev/kvmmust exist. On a cloud virtual machine, that means one with nested virtualisation enabled. erofs-utils, formkfs.erofs, ande2fsprogs, formkfs.ext4andmke2fs.iptables.
To build
- Go 1.25 or later,
git,makeandcurl.
On Debian or Ubuntu:
$ sudo apt install erofs-utils e2fsprogs iptables git make curl
and Go from go.dev/dl, as distributions often carry an older one.
Check that KVM is there:
$ ls -l /dev/kvm
crw-rw---- 1 root kvm 10, 232 Sep 24 09:12 /dev/kvm
Install
$ curl -fsSL https://raw.githubusercontent.com/konradasb/dicer/main/scripts/install.sh | bash
The script asks for sudo when it needs it, then:
- checks the requirements above;
- builds
diceranddicerd, with the hypervisors and guest binariesdicerdcarries, from themainbranch; - installs both to
/usr/local/bin; - writes a configuration,
/etc/dicerd/config.yaml, unless there is one; - turns on IPv4 forwarding, now and at every boot;
- installs
dicerd.service, enables it and starts it.
--ref builds a branch, tag or commit instead of main:
$ curl -fsSL https://raw.githubusercontent.com/konradasb/dicer/main/scripts/install.sh | bash -s -- --ref v0.2.0
Check it
$ sudo systemctl status dicerd
$ sudo dicer version
$ sudo dicer info
dicer info shows the daemon, the hypervisors it carries, and how much of
the host’s CPU, memory and disk it may give instances.
The daemon’s socket belongs to root, so dicer is run with sudo on the
host. See Remote access to manage the host from
another machine.
Upgrade and remove
Running the install script again upgrades Dicer, without stopping the
instances that are running. uninstall.sh removes it. See
Operating the daemon for both.