diff --git a/readme.md b/readme.md index fa99841..1265d4a 100644 --- a/readme.md +++ b/readme.md @@ -1,18 +1,27 @@ -## setup +# fireactions -```sh -sudo env GOBIN=/opt/cni/bin go install github.com/awslabs/tc-redirect-tap/cmd/tc-redirect-tap@latest -sudo dnf install containernetworking-plugins -``` +¡WIP! + +una API para correr cosas aisladas en una VM [firecracker] que inicia rápido a partir de una imágen de contenedor OCI. inspirado en [Fly Machines] y otras cosas. + +[firecracker]: +[Fly Machines]: + +## setup ```sh # build rootfs image (incl. agent) (cd rootfs; pnpm install) node rootfs/index.js -# build & run daemon -go build && sudo ./fireactions +# run daemon +(cd server; pnpm install && pnpm start) & # run VM -curl --data-raw "#!/bin/sh"\n"echo hi" localhost:8080/run -# inspect VM tty -tail -f /tmp/std* +curl "localhost:8080/run?image=gitea.nulo.in/nulo/super-image:3.18" ``` + +## componentes + +1. `server` es el servidor de api (JavaScript/TypeScript) que recibe pedidos, descarga imagenes OCI y inicia firecracker con los parametros apropiados. +1. `rootfs` es el código (JavaScript/TypeScript) que genera el rootfs con todo lo necesario para configurar la vm (red (WIP), mounts básicos, etc) y montar la imágen. + 1. `rootfs/init` es un programa (Rust) que hace las cosas básicas antes de y para montar la imágen OCI y hace chroot. +