Requirements

Preview

Sign in during Public Preview to get the Team plan free, plus an early-adopter discount when we launch. Sign in

Requirements

Locally is a single binary plus the plugins you choose to install. It runs entirely on your machine and, once set up, works offline. This page lists what that machine needs.

Operating system and architecture

Platform Architectures Notes
macOSApple silicon (arm64), Intel (amd64)Installed with Homebrew. The DNS resolver entry is written to /etc/resolver.
Linuxamd64, arm64Installed with Homebrew on Linux or a direct download. DNS is configured through systemd-resolved, with a dnsmasq fallback where resolved isn't in use.
Windowsamd64Installed with Scoop. *.locally resolution uses a Name Resolution Policy Table (NRPT) rule; the wizard labels Windows support as preview.

Getting Started has the install commands for each platform. Direct downloads for every platform are in your Locally Account.

Permissions on the machine

Day-to-day use needs no elevated rights. Two one-time setup steps do, because they change the machine rather than your user account, and locally setup shows you the exact command to run yourself rather than running it silently:

  • Trusting the local CA in the OS trust store (sudo on macOS and Linux, Administrator on Windows).
  • Pointing the resolver at Locally for *.locally names (locally configure dns).

Network

  • Local ports 5660-5680, plus 5671 (AMQP) and 5883 (MQTT), must be free. On Windows, Locally also binds 127.0.0.1:53 for DNS. The full map is on Networking & Proxies.
  • Outbound HTTPS to api.locally.build (certificate renewal at least every 32 days, licence checks), account.locally.build (sign-in) and get.locally.build (downloads and locally update). Between renewals Locally runs with no internet connection at all.

A container runtime (optional)

Locally needs Docker or Podman only for the features that start containers: Web Apps, Function Apps, Container Instances, Container Apps, pulling from the Container Registry emulator into a runtime, and Virtual Machines. Everything else - the control plane, Storage, Key Vault, Service Bus, Cosmos DB, the directory and the rest - runs in-process with no runtime installed. Both runtimes are auto-detected at launch; locally configure docker or locally configure podman teaches the runtime's daemon to reach Locally's registry, and Networking & Proxies covers the extra step Docker Desktop's VM needs to resolve *.locally.

Memory and disk

Locally holds its state in memory for the lifetime of a launch, so its footprint grows with what you create - blobs and file shares are the exception, and are spilled to a temporary directory that is removed at shutdown. Each installed plugin is a separate process. A laptop that comfortably runs your IDE and a container runtime runs Locally; the containers you ask it to start are the part that consumes real resources, and that is the same cost as running them yourself.

Tooling

None is required. The Azure CLI, Terraform, OpenTofu, Pulumi, Bicep, PowerShell and the Azure SDKs are what Locally is for, and Automatic Configuration points whichever you have at Locally when you prefix a command with locally run. Some locally subcommands shell out to the Azure CLI (for example locally refresh-reference-data) and say so in their help.

Checking a machine

locally validate checks the certificate, its domains and expiry, the resolver, the container runtime and your sign-in, and prints the fix for anything it finds. locally setup is the guided version of the same checks and is safe to re-run.

$ locally validate
Preview

Sign in during Public Preview to get the Team plan free, plus an early-adopter discount when we launch. Sign in

A local cloud for you and your agents.

Your Azure infrastructure, running on your machine. Deploy in seconds, break things freely, and ship to Azure when you're ready.