PandaStack

Deploy on Mac (M1/M2/M3)

Local dev on Apple Silicon via Lima — for hacking on PandaStack itself.

Firecracker requires Linux + KVM, neither of which exist on macOS. To run PandaStack locally on Apple Silicon, we run it inside a Lima VM with QEMU TCG emulation.

This is for development only. With TCG (no KVM), microVM boot times are ~3 seconds instead of ~250 ms. Production should use GCP, AWS, or bare metal.

Install Lima

brew install lima

Spin up the dev VM

./deploy/deploy-mac-m1-local.sh up

This creates a lima-pandastack VM with:

  • Ubuntu 24.04 (linux/amd64 via TCG)
  • 8 vCPU, 8 GiB RAM, 40 GiB disk
  • All damroo services installed
  • Port forwards: 8080 → api, 3000 → dashboard

Total time: ~10 minutes (first run downloads the cloud image).

Use it

export PANDASTACK_API=http://localhost:8080
export PANDASTACK_API_KEY=dam_local_dev

pandastack sandboxes ls

The dashboard is at http://localhost:3000.

Shell into the host VM

limactl shell pandastack

You're now inside the Ubuntu VM. damroo-agent, damroo-api, and firecracker binaries live in /usr/local/bin.

Hot-reload for development

After editing Go source on your Mac:

./deploy/deploy-mac-m1-local.sh sync agent      # rebuilds + uploads agent
./deploy/deploy-mac-m1-local.sh sync api        # rebuilds + uploads api
./deploy/deploy-mac-m1-local.sh sync dashboard  # rsyncs Next.js

Tearing down

./deploy/deploy-mac-m1-local.sh down

Or to fully delete: limactl delete pandastack.

On this page