25 Commits
Author SHA1 Message Date
zeekay 9836a0d284 Merge branch 'vm-ch'
# Conflicts:
#	scripts/prepare-rootfs.sh
2026-09-01 16:30:19 -07:00
zeekayandHanzo Dev 532c9539f1 run: direct boot from the rootfs, unsynced throwaway disk
Boot straight to init=/usr/bin/vm-guest from /dev/vda; an initramfs is
only used when --initrd asks for one. Plain run attaches the work disk
without host durability and unlinks it while the VM holds it open —
teardown deletes nothing. The clone is warmed sequentially while VZ
starts, the image ships at the default --disk-size so the clone is never
extended, and the cmdline gains printk.time=1 plus mitigations=off (the
guest is disposable and secrets stay host-side in the proxy).

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 16:13:07 -07:00
zeekayandHanzo Dev 3faaae5c0b rootfs: build for the host architecture
debootstrap arch and the vm-guest musl target now follow uname -m
(amd64/x86_64 alongside the existing arm64/aarch64 path).

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 16:09:07 -07:00
zeekayandHanzo Dev d1191359f4 kernel: add x86_64 defconfig and arch-aware build script
Same feature set as the arm64 config (virtio-pci, virtio-console, vsock,
netfilter, cgroup2 + k3s set); the arch section swaps GICv3/PL011 for
PVH direct boot, kvmclock, and ACPI. cloud-hypervisor loads the
uncompressed ELF vmlinux via its PVH entry, so the build strips vmlinux
into Image instead of taking arch/*/boot/Image.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 16:08:47 -07:00
zeekayandHanzo Dev 7f93ae353d rootfs: ship iptables/nftables and the hosts file
k3s programs iptables from inside the guest; bake /etc/hosts and the
hanzo-vm hostname into the image instead of relying on the guest
fallback.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 12:13:35 -07:00
zeekayandHanzo Dev 51a68b9311 Rebrand shuru as Hanzo VM
Crates keep their history: vm (lib, was shuru-vm), hanzo-vm (CLI package
and binary, was shuru-cli), vm-guest, vm-proto, vm-proxy, vm-sdk,
vm-store, vm-darwin, vm-linux; all at 0.1.0, Apache-2.0, hanzoai/vm.
Config is vm.json, data lives in ~/.hanzo/vm (HANZO_VM_HOME), env vars
are HANZO_VM_*, the guest runs as /usr/bin/vm-guest, and assets download
from hanzoai/vm releases. The TypeScript SDK is @hanzo/vm. NOTICE
credits shuru as the origin. prepare-rootfs.sh builds the image natively
on arm64 Linux with mke2fs -d and re-execs in Docker only on macOS.
Includes rustfmt over the tree and fixes for clippy 1.98 lints.

Co-authored-by: Hanzo Dev <[email protected]>
2026-09-01 11:49:10 -07:00
harshdoesdev 670efb8310 feat: PL031 RTC, --secret/--allow-host CLI flags, SDK proxy config support 2026-03-10 23:59:19 +05:30
harshdoesdev 0a04438452 feat(v0.3.0): custom minimal kernel, proxy-based networking, and landing page overhaul 2026-03-10 04:51:26 +05:30
harshdoesdev 703c738636 feat: custom minimal kernel, simplified initramfs, faster boot 2026-03-08 19:15:42 +05:30
harshdoesdev 096b8f40d8 feat: quiet boot by default, add --verbose flag; fix rootfs build (4GB default, cpio symlinks, e2fsck preen mode) 2026-03-07 03:06:10 +05:30
harshdoesdev debcdf6619 feat: migrate guest OS from Alpine Linux to Debian trixie 2026-03-07 01:22:39 +05:30
harshdoesdev d19f690944 fix: add e2fsck to initramfs for checkpoint disk resize 2026-03-02 01:14:21 +05:30
harshdoesdev d6d918e992 fix: CI pipeline 2026-02-28 01:20:25 +05:30
harshdoesdev d7bcf52998 fix: bundle guest binary in initramfs for automatic checkpoint migration 2026-02-28 01:11:28 +05:30
harshdoesdev f3b54b8538 feat: add glibc compatibility layer to rootfs 2026-02-27 18:37:58 +05:30
harshdoesdev 1a15be18be fix: restore block device listing in initramfs error path 2026-02-27 02:04:47 +05:30
harshdoesdev bc827355bc feat(shuru-darwin): add disk image caching/sync modes and StorageDevice trait 2026-02-27 00:25:35 +05:30
harshdoesdev 45ad00e5c7 feat: add directory mounts via VirtioFS with overlay isolation 2026-02-26 21:42:53 +05:30
harshdoesdev 6ab1ef5f34 fix: correct ldd library path extraction in initramfs build 2026-02-22 01:35:18 +05:30
harshdoesdev 905539ca66 feat: ephemeral rootfs, configurable disk size, and checkpoints 2026-02-21 22:08:58 +05:30
harshdoesdev b3d1799261 fix: move DHCP into initramfs to fix networking race 2026-02-21 20:52:49 +05:30
harshdoesdev 0cd895e0ef fix: symlink collision with /sbin/init 2026-02-21 19:15:34 +05:30
harshdoesdev af4d33c237 fix: use arm64 runner and docker platform to build correct arch initramfs 2026-02-21 18:20:53 +05:30
harshdoesdev 81217e4662 feat: add init and upgrade commands 2026-02-21 17:43:35 +05:30
harshdoesdevandHanzo Dev cd63e3babe Initial commit: boot Alpine Linux microVM and run commands via vsock
Rust CLI that boots an ARM64 Alpine Linux VM on macOS using Apple's
Virtualization.framework and executes commands inside it over vsock.

- shuru-cli: CLI with `shuru run -- <cmd>` to boot VM and exec commands
- shuru-vz: vendored Virtualization.framework bindings (from virt-fwk)
  with added vsock support
- shuru-guest: PID 1 init binary (aarch64-linux-musl) with vsock server
- scripts/prepare-rootfs.sh: downloads Alpine linux-virt kernel,
  builds initramfs with VirtIO/ext4 modules, creates ext4 rootfs

Co-authored-by: Hanzo Dev <[email protected]>
2026-02-18 04:08:19 +05:30