A minimal, rolling CLI system in the BSD tradition: clone the tree, build a world, boot it from RAM. No disk image, no install step, no network required to start.
make run boots straight into an interactive shell — it brings up DHCP on every NIC and starts SSH (Dropbear) and time sync. Nothing touches your disk.
$ git clone https://github.com/zsigisti/blueberry.git $ cd blueberry $ make _check_tools # verify compiler, curl, zstd, cpio, qemu $ make world # kernel + busybox + runit + dropbear $ make run # boot the live CLI (Ctrl-A X to quit)
| Component | Choice | Why |
|---|---|---|
| C library | glibc | Binary compatibility with prebuilt glibc software |
| Core utils | busybox 1.36 | One binary, 300+ applets, standalone /bin/sh |
| Shell | bash 5.2 | Default interactive shell on installs |
| Init | systemd (default) · runit | journald/logind/networkd; runit for RAM-first builds |
| SSH | Dropbear | Tiny static SSH server + client |
| Kernel | Linux 7.0 | SATA/NVMe/USB, NICs, UEFI, serial console |
Boot the ISO and run blueberry-install — a guided GPT/UEFI installer that partitions, formats, extracts the rootfs, installs GRUB, writes fstab and sets the root password.
# blueberry-install → partition (EFI + root) → format (FAT + ext4) → extract rootfs, install GRUB → write fstab, set root password
# set on the boot cmdline:
bbinstall \
blueberry.target=/dev/sda \
blueberry.rootpw=secret \
blueberry.pkgs=vim,git
blueberry. It's the documented default of the live image, intentionally public — change it before exposing the box to a network.bpm.Blueberry is rolling — userspace and the pinned kernel roll forward as new signed artifacts are published. Tagged releases mark ISO snapshots, not a frozen world.
# bpm update # refresh the signed index # bpm install nginx # verified: TLS + SHA-256 + ed25519 # bpm search git # bpm upgrade # roll userspace (and kernel) forward