Firecracker Node Web
Overview
Section titled “Overview”Fastify-ready Node rootfs used by the staff-side Firecracker deployment (firecracker-ctl-net). Built as a multi-stage Docker image whose final layer (alpine 3.21 + /rootfs.ext4) ships a cp entrypoint so the in-cluster stage Job can run the image directly and copy /rootfs.ext4 onto the firecracker rootfs PVC.
This is the long-lived deploy rootfs for Node endpoints submitted through the dashboard IDE — week-to-month TTL VMs where paying a build-time npm install is the right tradeoff for instant boot. Quick one-shot Node VMs keep the smaller alpine-node rootfs plus the shared npm-cache.ext4 drive.
What’s baked in
Section titled “What’s baked in”- Alpine 3.21 + Node.js 22 LTS + npm
fastify,@fastify/cors,@fastify/helmet,@fastify/static,undici,zod,pino,pino-pretty,dotenv,nanoid,date-fns,commander,chalkresolved into/usr/lib/node_modulesca-certificates-bundle,ca-certificates,iproute2/etc/resolv.confwith1.1.1.1and8.8.8.8/initmounts/proc,/sys,/dev, brings uplo+eth0, exportsNODE_PATH=/usr/lib/node_modules, thenexec /entrypoint
Ecosystem
Section titled “Ecosystem”| Image | Runtime | Deployment | Network | Server lib baked |
|---|---|---|---|---|
alpine-python | Python | firecracker-ctl (public quick) | none | no |
alpine-node | Node | firecracker-ctl (public quick) | none | no |
firecracker-python-net | Python | firecracker-ctl-net (staff, short-lived) | TAP via Gluetun/WireGuard | requests/httpx |
firecracker-python-web | Python | firecracker-ctl-net (staff, long-lived) | TAP via Gluetun/WireGuard | FastAPI |
firecracker-node-web (this) | Node | firecracker-ctl-net (staff, long-lived) | TAP via Gluetun/WireGuard | Fastify |
npx nx run firecracker-node-web:containernpx nx run firecracker-node-web:extractOutput: packages/docker/firecracker/node/web/dist/node-web.ext4.
Publish
Section titled “Publish”npx nx run firecracker-node-web:container:productionPushes ghcr.io/kbve/firecracker-node-web:latest and :<version>.