Downloads

The toy, the bundle, the sources with the store they compile from, and four directories of guest images to put in /var/lib/cloonix/bulk.

Cloonix

cloonix-toy-100.tar.gz cloonix inside its own container. No root, nothing installed: extract, ./setup.sh nemo, ./nemocmd start. Get started uses this one.
cloonix-bundle-100.tar.gz the compiled run-time for a machine several people share. Installed once as root by sudo ./install_cloonfs, under /usr/libexec/cloonix.
cloonix-source-100.tar.gz the source tree: cloonix, the demos, the image builders of vm_create, the tests, the two books. The same tree as github.com/clownix/cloonix; ./doitall at its root builds the bundle, toy_targz/create_toy_targz.sh the toy.
cloonix-targz_store-100.tar.gz goes with the sources, and is needed before anything compiles: the open sources cloonix rebuilds, qemu, open vswitch, crun, passt and patchelf, each at the commit this version was made with, and the base root file-system. Extracted at the root of the source tree it is the targz_store directory, which ./doitall reads instead of the internet.

To compile, the two together:

wget https://clownix.net/downloads/cloonix-source-100.tar.gz
wget https://clownix.net/downloads/cloonix-targz_store-100.tar.gz
tar xf cloonix-source-100.tar.gz
cd cloonix-source-100
tar xf ../cloonix-targz_store-100.tar.gz
./doitall

The build runs inside a debian trixie machine made by build_tools/vmbuild/doitall.sh; the chapter on building of the documentation has the steps. To run cloonix and not compile it, the toy alone:

wget https://clownix.net/downloads/cloonix-toy-100.tar.gz
tar xf cloonix-toy-100.tar.gz

Guest images

A guest needs an image in /var/lib/cloonix/bulk, the same directory for the bundle and for the toy. The four directories below hold what vm_create/allbulk.sh of the source tree builds, from a local mirror of each distribution, without root.

A container image: .tar.gz

Copied into bulk as it is. The first add cnt on it extracts it once, into <image>_targz, for every network and every user of the machine.

cd /var/lib/cloonix/bulk
wget https://clownix.net/downloads/cnt_bulk/trixie.tar.gz
cloonix cli nemo add cnt c1 eth=1 trixie

The extracted tree is never modified and takes no --persistent. For an image to change, extract it under another name: mkdir mytrixie && tar xpf trixie.tar.gz -C mytrixie.

A machine image: .qcow2.gz

Gunzipped into bulk. A machine started on it writes to a disk of its own derived from the image, which stays as downloaded.

cd /var/lib/cloonix/bulk
wget https://clownix.net/downloads/kvm_bulk/trixie.qcow2.gz
gunzip trixie.qcow2.gz
cloonix cli nemo add kvm k1 ram=1000 cpu=2 eth=1 trixie.qcow2

The account needs /dev/kvm, /dev/vhost-net and /dev/net/tun: step 1.

cnt_bulk — the distributions, as containers

alpine.tar.gzalpine linux
trixie.tar.gzdebian 13; the image of the first demos, cloonix/cnt.py, and of the switching demos
resolute.tar.gzubuntu 26.04
rocky.tar.gzrocky linux
fedora44.tar.gzfedora 44
arch.tar.gzarch linux
tumbleweed.tar.gzopensuse tumbleweed
trixie_systemd.tar.gzdebian 13 started with systemd as its init

kvm_bulk — the distributions, as virtual machines

Seven base machines with a serial console, then the desktops, each built from the base of its distribution and shown by the canvas in a noVNC panel.

alpine.qcow2.gzalpine linux
trixie.qcow2.gzdebian 13; cloonix/kvm.py, and the machine the bundle is built in
resolute.qcow2.gzubuntu 26.04
rocky.qcow2.gzrocky linux
fedora44.qcow2.gzfedora 44
arch.qcow2.gzarch linux
tumbleweed.qcow2.gzopensuse tumbleweed
alpine_xfce.qcow2.gzalpine with the xfce desktop
trixie_lxde.qcow2.gzdebian 13 with the lxde desktop
trixie_gnome.qcow2.gzdebian 13 with the gnome desktop
resolute_gnome.qcow2.gzubuntu 26.04 with the gnome desktop
rocky_gnome.qcow2.gzrocky with the gnome desktop
fedora44_gnome.qcow2.gzfedora 44 with the gnome desktop
arch_plasma.qcow2.gzarch with the plasma desktop
tumbleweed_plasma.qcow2.gztumbleweed with the plasma desktop

cnt_demo_bulk — one container image per subject

Each is the trixie container plus the packages of one subject, and nothing else. The third column names the demos of demos/ that ask for it.

imagetrixie plusdemos
frr_trixie.tar.gzfrrrouting/frrspider.py frrspider_bgp.py frrmix.py isis.py address/ipv6.py switching/vxlan.py
bird_trixie.tar.gzbirdrouting/bird.py
babel_trixie.tar.gzbabeldrouting/babel.py
batman_trixie.tar.gzbatctlrouting/batman.py
ovn_trixie.tar.gzopen vswitch and ovnswitching/ovn.py
arp_trixie.tar.gzdsniff (arpspoof) and arpingsecurity/arp.py
dns_trixie.tar.gzbind9, frr, the dns query toolsaddress/dns.py
unbound_trixie.tar.gzunbound, the dnssec toolsaddress/unbound.py
knot_trixie.tar.gzknot dnsaddress/knot.py
dhcp_trixie.tar.gza dhcp server, a relay, two clientsaddress/dhcp.py wifi/cntkvm_home.py
ntp_trixie.tar.gzchronyaddress/ntp.py
wg_trixie.tar.gzwireguardsecurity/wg.py cloonix/a2b.py cloonix/snf.py
strongswan_trixie.tar.gzstrongswansecurity/ipsec.py
libreswan_trixie.tar.gzlibreswansecurity/ipsec.py
openvpn_trixie.tar.gzopenvpnsecurity/openvpn.py security/tls.py
tinc_trixie.tar.gztincsecurity/tinc.py
proxy_trixie.tar.gzhaproxy, nginx, curlservices/proxy.py cloonix/nginx.py
squid_trixie.tar.gzsquidservices/squid.py
smtp_trixie.tar.gzpostfix, a name server, the mail toolsservices/smtp.py
mqtt_trixie.tar.gzmosquitto and its clientsservices/mqtt.py
asterisk_alpine.tar.gzalpine with asterisk and a SIP toolboxservices/asterisk.py
nft_trixie.tar.gznftables, the conntrack toolssecurity/nftables.py cloonix/nat.py
suricata_trixie.tar.gzsuricatasecurity/suricata.py
ebpf_trixie.tar.gzthe bpf toolchainsecurity/ebpf.py
radius_trixie.tar.gzfreeradius and a supplicantsecurity/radius.py wifi/cntkvm_enterprise.py
vrrp_trixie.tar.gzkeepalivedavailability/vrrp.py
cluster_trixie.tar.gzcorosync and pacemakeravailability/cluster.py
perf_trixie.tar.gzthe measurement toolswatching/perf.py
flow_trixie.tar.gziperf3, trafgenthe flow tests of debug/

kvm_demo_bulk — the machines of the demos

python_trixie.qcow2.gz the trixie machine plus python3, for a guest that runs the cloonix client itselfcloonix/realnet.py cloonix/phy.py

Not here

win.qcow2a windows disk is prepared once by its owner; the chapter on windows guests of the documentation has the steps
c8000v.qcow2the c8000v image comes from cisco; the three steps of vm_create/cisco prepare it
freebsd.qcow2built from the internet by vm_create/cnt_kvm/kvm_freebsd.sh, there being no local mirror of it