Skip to content

Install Locally Using Lima ​

This guide covers platform-specific installation and configuration tasks for deploying Garden Linux on Lima (Linux virtual machines on macOS and Linux).

New to Lima Deployments?

For a complete step-by-step first-boot walkthrough, see the First Boot on Lima tutorial. The tutorial covers installing Lima, creating a YAML configuration, launching a VM, and connecting via SSH.

Generate a Lima manifest using the script directly ​

If you have glrd installed locally, you can run generate-lima-yaml.py directly from the gardenlinux repository without Podman:

bash
# Latest release:
./bin/generate-lima-yaml.py | limactl start --name gardenlinux -

# Specific release version:
./bin/generate-lima-yaml.py --version <version> | limactl start --name gardenlinux -

# Latest nightly:
./bin/generate-lima-yaml.py --version nightly | limactl start --name gardenlinux -

# Specific nightly version (requires --allow-nightly):
./bin/generate-lima-yaml.py --version <version> --allow-nightly | limactl start --name gardenlinux -

For all options: ./bin/generate-lima-yaml.py --help

Installing glrd

See Run GLRD for installation instructions.

Use a locally built Lima image ​

After building a Garden Linux Lima image, create a Lima manifest that points to your local .qcow2 file:

yaml
os: Linux
images:
  - location: /path/to/your/gardenlinux/.build/lima-<arch>-<version>-<commit_sha>.qcow2
containerd:
  system: false
  user: false

Start the VM:

bash
cat manifest.yaml | limactl start --name=gardenlinux -
limactl shell gardenlinux

Sample Lima manifests ​

Lima YAML manifests can include provisioning shell scripts that run on first boot. The gardenlinux repository ships examples in features/lima/samples/:

For complex provisioning, building a custom Garden Linux image is preferable to provisioning scripts as it produces a reproducible, hardened artifact.

Post-Installation Steps ​

After installation, follow one or more of these post-installation steps to complete your Lima setup: