diff --git a/README.md b/README.md index ce7a310..ab2a8e6 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ One-command development sandboxes on Firecracker microVMs. +![banger demo](assets/banger.gif) + Spin up a clean Linux VM with your repo and tooling preloaded, drop into ssh, and tear it down — all from one command. banger is built for the dev loop, not the server use case: guests are short-lived, diff --git a/assets/banger.gif b/assets/banger.gif new file mode 100644 index 0000000..2f88c5a Binary files /dev/null and b/assets/banger.gif differ diff --git a/assets/demo.tape b/assets/demo.tape new file mode 100644 index 0000000..d68741a --- /dev/null +++ b/assets/demo.tape @@ -0,0 +1,112 @@ +# banger hero demo — VHS tape +# Render with: vhs assets/demo.tape + +Output assets/banger.gif + +Require banger +Require ssh +Require curl + +Set Shell "bash" +Set FontSize 14 +Set LineHeight 1.4 +Set Width 1200 +Set Height 720 +Set Padding 20 +Set Theme "Catppuccin Frappe" +Set TypingSpeed 66ms + +# Off-camera reset: enable bash syntax highlighting via ble.sh, prompt +# styling, drop any prior demo VM, and clear the screen. +Hide +Type "source ~/.local/share/blesh/ble.sh --noattach" +Enter +Sleep 200ms +Type "bleopt complete_auto_complete= complete_auto_history=" +Enter +Sleep 100ms +Type `export PS1="\n$PS1"` +Enter +Sleep 200ms +Type "[[ ${BLE_VERSION-} ]] && ble-attach" +Enter +Sleep 400ms +Type "ble-face -s syntax_error fg=red" +Enter +Sleep 100ms +Type "banger vm kill demo 2>/dev/null; banger vm delete demo 2>/dev/null; clear" +Enter +Sleep 500ms +Show + +Type "banger vm run --nat --name demo" +Enter +Wait+Line /demo:~#/ +Sleep 1.4s + +Type "uname -a" +Enter +Sleep 1.4s + +Type "exit" +Enter +Wait +Sleep 700ms + +Type "banger vm list" +Enter +Wait +Sleep 1.8s + +Type "ssh demo.vm" +Enter +Wait+Line /demo:~#/ +Sleep 500ms + +Type "touch foo bar baz" +Enter +Sleep 700ms + +Type "ls" +Enter +Sleep 1.4s + +Type "exit" +Enter +Sleep 700ms + +Type "banger vm stop demo" +Enter +Wait +Sleep 1s + +Type "banger vm start demo" +Enter +Wait +Sleep 1s + +Type "banger vm exec demo -- ls" +Enter +Wait +Sleep 1.4s + +Type "banger vm exec demo -- docker run -d -p 80:80 nginx" +Enter +Wait +Sleep 1.6s + +Type "banger vm ports demo" +Enter +Wait +Sleep 2s + +Type "curl http://demo.vm" +Sleep 1.2s +Enter +Wait +Sleep 4s + +Type "banger vm kill demo && banger vm delete demo" +Enter +Wait +Sleep 3s