Prepare, configure, and manage Firecracker microVMs in seconds!
virtualization linux microvm firecracker
TypeScript 53.3%
Rust 41.8%
Shell 2.6%
Nix 1.2%
Other 1.2%
102 1 0

Clone this repository

https://tangled.org/tsiry-sandratraina.com/fireup https://tangled.org/did:plc:7vdlgi2bflelz7mmuxoqjfcr/fireup
git@tangled.org:tsiry-sandratraina.com/fireup git@tangled.org:did:plc:7vdlgi2bflelz7mmuxoqjfcr/fireup

For self-hosted knots, clone URLs may differ based on your setup.

Download tar.gz
README.md

Fireup#

ci

fireup is a tool designed to simplify the process of setting up and managing Firecracker microVMs. It automates the preparation of the necessary files, including kernel images, root filesystems, and SSH keys, to quickly get you started with Firecracker.

Made with VHS

Features#

  • Quick Setup: Prepares linux kernel, Ubuntu/Debian/Alpine/NixOS rootfs, and SSH keys in one command.
  • Seamless VM Management: Start, stop, and monitor Firecracker microVMs with intuitive subcommands.
  • Network Configuration: Automatically sets up TAP devices, IP forwarding, and NAT for connectivity.
  • SSH Access: Easily connect to the microVM via SSH.
  • Cross-Architecture Support: Supports x86_64 and aarch64 with automatic detection.
  • Robust Error Handling: Clear error messages using anyhow for easy debugging.

Prerequisites#

Installation#

You can install fireup using bash:

curl -sSL https://raw.githubusercontent.com/tsirysndr/fireup/main/install.sh | bash

Ubuntu/Debian#

echo "deb [trusted=yes] https://apt.fury.io/tsiry/ /" | sudo tee /etc/apt/sources.list.d/fury.list
sudo apt-get update
sudo apt-get install fireup

Usage#


     _______           __  __
    / ____(_)_______  / / / /___
   / /_  / / ___/ _ \/ / / / __ \
  / __/ / / /  /  __/ /_/ / /_/ /
 /_/   /_/_/   \___/\____/ .___/
                        /_/


Usage: fireup [OPTIONS] [COMMAND]

Commands:
  init     Create a new MicroVM configuration `fire.toml` in the current directory
  ps       List all Firecracker MicroVM instances
  start    Start Firecracker MicroVM
  stop     Stop Firecracker MicroVM
  restart  Restart Firecracker MicroVM
  up       Start a new Firecracker MicroVM
  down     Stop Firecracker MicroVM
  status   Check the status of Firecracker MicroVM
  logs     View the logs of the Firecracker MicroVM
  ssh      SSH into the Firecracker MicroVM
  reset    Reset the Firecracker MicroVM
  rm       Delete the Firecracker MicroVM
  serve    Start fireup HTTP API server
  inspect  Inspect the Firecracker MicroVM details
  help     Print this message or the help of the given subcommand(s)

Options:
      --debian               Prepare Debian MicroVM
      --alpine               Prepare Alpine MicroVM
      --nixos                Prepare NixOS MicroVM
      --fedora               Prepare Fedora MicroVM
      --gentoo               Prepare Gentoo MicroVM
      --slackware            Prepare Slackware MicroVM
      --opensuse             Prepare OpenSUSE MicroVM
      --opensuse-tumbleweed  Prepare OpenSUSE Tumbleweed MicroVM
      --almalinux            Prepare AlmaLinux MicroVM
      --rockylinux           Prepare RockyLinux MicroVM
      --archlinux            Prepare ArchLinux MicroVM
      --ubuntu               Prepare Ubuntu MicroVM
      --vcpu <n>             Number of vCPUs
      --memory <m>           Memory size in MiB
      --vmlinux <path>       Path to the kernel image
      --rootfs <path>        Path to the root filesystem image
      --bridge <name>        Name of the bridge interface [default: br0]
      --tap <name>           Name of the tap interface [default: ]
      --mac-address <MAC>    MAC address for the network interface
      --api-socket <path>    Path to the Firecracker API socket
      --boot-args <ARGS>     Override boot arguments
      --ssh-keys <SSH_KEYS>  Comma-separated list of SSH public keys to add to the VM
  -h, --help                 Print help
  -V, --version              Print version