The toy, the toy specialised for each of frr, BIRD, Suricata, BIND and Asterisk, the bundle, the sources with the store they compile
from, and four directories of guest images to put in
/var/lib/cloonix/bulk.
cloonix-toy.tar.xz |
23 MB, 111 MB extracted. cloonix inside its own container. No root, nothing installed: extract,
./setup.sh nemo, ./nemocmd start. The images
go in /var/lib/cloonix/bulk before ./setup.sh:
a bulk made after it is not seen by the toy.
Get started uses this one. |
cloonix-bundle.tar.gz |
35 MB. The compiled run-time for a machine several people share. Installed once
as root by sudo ./install_cloonfs, under
/usr/libexec/cloonix. |
cloonix-source-102.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,
toy_targz/create_<name>_toy_targz.sh the specialised
toys; build_tools/vmbuild/doitall.sh makes all of them in
a builder machine. |
cloonix-targz_store-102.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. |
The same toy, for one open source project, containers only: no kvm, and
the project installed in the root of the toy itself, which its containers run
on as self_rootfs, so nothing else is to fetch. Only its demos,
among them the examples of its own documentation. Each one is used like the
toy: extract, ./setup.sh nemo, ./nemocmd start, then
the Demo button of the canvas. Any other container image goes in
/var/lib/cloonix/bulk before ./setup.sh: a bulk made
after it is not seen by the toy. Of the image of its project, such a toy
takes the commands its demos run, the packages they need and the libraries
of both, nothing else: frr without python, BIRD and Suricata with only the
python modules their demos import, and BIND without python.
cloonix-frr-toy.tar.xz |
frr, from the frr_trixie image: the three demos of
routing/ (frrspider, frrspider_bgp, frrmix) and, in
frr_demo/, 26 examples of the FRR User Guide, segment
routing, SR-TE driven by the Pola PCE and L3VPN over SR-MPLS and SRv6
among them. |
cloonix-bird-toy.tar.xz |
BIRD, from the bird_trixie image: the demo of
routing/ (bird) and, in bird_demo/, 13 examples
of the BIRD User's Guide. |
cloonix-suricata-toy.tar.xz |
Suricata, from the suricata_trixie image: the demo of
security/ (suricata) and, in suricata_demo/,
7 examples of the Suricata User Guide, the sensor as a router or inline
as an IPS. |
cloonix-bind-toy.tar.xz |
BIND 9, from the dns_trixie image: the demo of
address/ (dns) and, in bind_demo/, 12 examples
of the BIND 9 Administrator Reference Manual, from a primary and its
secondary to a resolver walking a lab internet from its root, DNSSEC,
catalog zones and a DNS firewall. |
cloonix-asterisk-toy.tar.xz |
Asterisk, from the asterisk_trixie image: the demo of
services/ (asterisk) and, in asterisk_demo/,
14 demos of the Asterisk documentation with baresip phones, SIPp and
Kamailio, from a first registered call to TLS and SRTP, NAT, voicemail,
conferences, queues, IAX2, load tests and a load-balancing proxy. |
To compile, the two together:
wget https://clownix.net/downloads/cloonix-source-102.tar.gz
wget https://clownix.net/downloads/cloonix-targz_store-102.tar.gz
tar xf cloonix-source-102.tar.gz
cd cloonix-source-102
tar xf ../cloonix-targz_store-102.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.tar.xz
tar xf cloonix-toy.tar.xz
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.
.tar.gzCopied 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.
.qcow2.gzGunzipped 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.
alpine.tar.gz | alpine linux |
trixie.tar.gz | debian 13; the image of the first demos, cloonix/cnt.py, and of the switching demos |
resolute.tar.gz | ubuntu 26.04 |
rocky.tar.gz | rocky linux |
fedora44.tar.gz | fedora 44 |
fedora45.tar.gz | fedora 45 |
arch.tar.gz | arch linux |
tumbleweed.tar.gz | opensuse tumbleweed |
openwrt.tar.gz | openwrt 25.12 |
trixie_systemd.tar.gz | debian 13 started with systemd as its init |
Nine 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.gz | alpine linux |
trixie.qcow2.gz | debian 13; cloonix/kvm.py, and the machine the bundle is built in |
resolute.qcow2.gz | ubuntu 26.04 |
rocky.qcow2.gz | rocky linux |
fedora44.qcow2.gz | fedora 44 |
fedora45.qcow2.gz | fedora 45 |
arch.qcow2.gz | arch linux |
tumbleweed.qcow2.gz | opensuse tumbleweed |
openwrt.qcow2.gz | openwrt 25.12 |
alpine_xfce.qcow2.gz | alpine with the xfce desktop |
trixie_lxde.qcow2.gz | debian 13 with the lxde desktop |
trixie_gnome.qcow2.gz | debian 13 with the gnome desktop |
resolute_gnome.qcow2.gz | ubuntu 26.04 with the gnome desktop |
rocky_gnome.qcow2.gz | rocky with the gnome desktop |
fedora45_gnome.qcow2.gz | fedora 45 with the gnome desktop |
arch_plasma.qcow2.gz | arch with the plasma desktop |
tumbleweed_plasma.qcow2.gz | tumbleweed with the plasma desktop |
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.
| image | trixie plus | demos |
|---|---|---|
frr_trixie.tar.gz | frr, the Pola PCE | routing/frrspider.py frrspider_bgp.py frrmix.py isis.py address/ipv6.py switching/vxlan.py |
bird_trixie.tar.gz | bird | routing/bird.py |
babel_trixie.tar.gz | babeld | routing/babel.py |
batman_trixie.tar.gz | batctl | routing/batman.py |
ovn_trixie.tar.gz | open vswitch and ovn | switching/ovn.py |
arp_trixie.tar.gz | dsniff (arpspoof) and arping | security/arp.py |
dns_trixie.tar.gz | bind9, frr, the dns query tools | address/dns.py |
unbound_trixie.tar.gz | unbound, the dnssec tools | address/unbound.py |
knot_trixie.tar.gz | knot dns | address/knot.py |
dhcp_trixie.tar.gz | a dhcp server, a relay, two clients | address/dhcp.py wifi/cntkvm_home.py |
ntp_trixie.tar.gz | chrony | address/ntp.py |
wg_trixie.tar.gz | wireguard | security/wg.py cloonix/a2b.py cloonix/snf.py |
strongswan_trixie.tar.gz | strongswan | security/ipsec.py |
libreswan_trixie.tar.gz | libreswan | security/ipsec.py |
openvpn_trixie.tar.gz | openvpn | security/openvpn.py security/tls.py |
tinc_trixie.tar.gz | tinc | security/tinc.py |
proxy_trixie.tar.gz | haproxy, nginx, curl | services/proxy.py cloonix/nginx.py |
squid_trixie.tar.gz | squid | services/squid.py |
smtp_trixie.tar.gz | postfix, a name server, the mail tools | services/smtp.py |
mqtt_trixie.tar.gz | mosquitto and its clients | services/mqtt.py |
asterisk_trixie.tar.gz | asterisk compiled for trixie, baresip, sipp, sngrep, kamailio | services/asterisk.py |
nft_trixie.tar.gz | nftables, the conntrack tools | security/nftables.py cloonix/nat.py |
suricata_trixie.tar.gz | suricata | security/suricata.py |
ebpf_trixie.tar.gz | the bpf toolchain | security/ebpf.py |
radius_trixie.tar.gz | freeradius and a supplicant | security/radius.py wifi/cntkvm_enterprise.py |
vrrp_trixie.tar.gz | keepalived | availability/vrrp.py |
cluster_trixie.tar.gz | corosync and pacemaker | availability/cluster.py |
perf_trixie.tar.gz | the measurement tools | watching/perf.py |
flow_trixie.tar.gz | iperf3, trafgen | the flow tests of debug/ |
python_trixie.qcow2.gz |
the trixie machine plus python3, for a guest that runs
the cloonix client itself | cloonix/realnet.py cloonix/phy.py |
win.qcow2 | a windows disk is prepared once by its owner; the chapter on windows guests of the documentation has the steps |
c8000v.qcow2 | the c8000v image comes from cisco; the three steps of vm_create/cisco prepare it |
freebsd.qcow2 | built from the internet by vm_create/cnt_kvm/kvm_freebsd.sh, there being no local mirror of it |