Skip to content
Get Started for Free

Installation

LocalStack provides multiple installation paths depending on your development environment and requirements. We recommend using a CLI-based installation for the most consistent local development experience.

Choose the CLI that fits your workflow: use lstk for a streamlined, non-Python setup, or LocalStack CLI for access to our complete feature set.

lstk is a lightweight, Go-based binary that manages the authentication and container lifecycle in a single workflow.

Install lstk

Terminal window
brew install localstack/tap/lstk

Start LocalStack

Terminal window
lstk start

The first execution initiates a browser-based login flow. Subsequent starts use credentials stored in your system keyring.

The LocalStack CLI is the primary tool for managing all LocalStack capabilities.

Requirement: You must have a working Docker installation before proceeding.

You can download the pre-built binary for your architecture using the link below:

x86-64

ARM64

or use the curl commands below:

For x86-64:

Terminal window
curl --output localstack-cli-4.14.0-linux-amd64-onefile.tar.gz \
--location https://github.com/localstack/localstack-cli/releases/download/v4.14.0/localstack-cli-4.14.0-linux-amd64-onefile.tar.gz

For ARM64:

Terminal window
curl --output localstack-cli-4.14.0-linux-arm64-onefile.tar.gz \
--location https://github.com/localstack/localstack-cli/releases/download/v4.14.0/localstack-cli-4.14.0-linux-arm64-onefile.tar.gz

Then extract the LocalStack CLI from the terminal:

Terminal window
sudo tar xvzf localstack-cli-4.14.0-linux-*-onefile.tar.gz -C /usr/local/bin
Alternative: Homebrew on Linux

If you are using Homebrew for Linux, you can install the LocalStack CLI directly from our official LocalStack tap:

Terminal window
brew install localstack/tap/localstack-cli

To verify that the LocalStack CLI was installed correctly, you can check the version in your terminal:

Terminal window
localstack --version
4.14.0

You are all set!

Once you’ve set up your auth token, you can start LocalStack with the following command:

Terminal window
localstack start # start localstack in background with -d flag
Terminal window
__ _______ __ __
/ / ____ _________ _/ / ___// /_____ ______/ /__
/ / / __ \/ ___/ __ `/ /\__ \/ __/ __ `/ ___/ //_/
/ /___/ /_/ / /__/ /_/ / /___/ / /_/ /_/ / /__/ ,<
/_____/\____/\___/\__,_/_//____/\__/\__,_/\___/_/|_|
💻 LocalStack CLI ${LOCALSTACK_VERSION}
👤 Profile: default
[12:47:13] starting LocalStack in Docker mode 🐳 localstack.py:494
preparing environment bootstrap.py:1240
configuring container bootstrap.py:1248
starting container bootstrap.py:1258
[12:47:15] detaching bootstrap.py:1262

The LocalStack CLI allows you to easily update the different components of LocalStack. To check the various options available for updating, run:

Terminal window
localstack update --help
Terminal window
Usage: localstack update [OPTIONS] COMMAND [ARGS]...
Update different LocalStack components.
Options:
-h, --help Show this message and exit.
Commands:
all Update all LocalStack components
docker-images Update docker images LocalStack depends on
localstack-cli Update LocalStack CLI

Use these methods for CI pipelines, server environments, or manual container management.

Recommended for CI and team environments. Create a docker-compose.yml with the following configuration:

services:
localstack:
container_name: "${LOCALSTACK_DOCKER_NAME:-localstack-main}"
image: localstack/localstack-pro
ports:
- "127.0.0.1:4566:4566" # Gateway
- "127.0.0.1:4510-4559:4510-4559" # External service range
environment:
- LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:?}
- PERSISTENCE=${PERSISTENCE:-0}
volumes:
- "${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack"
- "/var/run/docker.sock:/var/run/docker.sock"

Execute docker compose up to start.

Run the container directly via the Docker engine:

Terminal window
docker run \
--rm -it \
-p 127.0.0.1:4566:4566 \
-p 127.0.0.1:4510-4559:4510-4559 \
-v /var/run/docker.sock:/var/run/docker.sock \
-e LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:?} \
localstack/localstack-pro

Deploy LocalStack to a Kubernetes cluster:

Terminal window
helm repo add localstack-repo [https://helm.localstack.cloud](https://helm.localstack.cloud)
helm upgrade --install localstack localstack-repo/localstack

Manage local instances via a standalone desktop application. Download here.

Install the official extension to manage LocalStack directly from the Docker Desktop dashboard.

The LocalStack CLI installation is successful, but I cannot execute localstack

Section titled “The LocalStack CLI installation is successful, but I cannot execute localstack”

If you can successfully install LocalStack using pip but you cannot use it in your terminal, you most likely haven’t set up your operating system’s / terminal’s PATH variable (in order to tell them where to find programs installed via pip).

  • If you are using Windows, you can enable the PATH configuration when installing Python, as described in the official docs of Python.
  • If you are using a MacOS or Linux operating system, please make sure that the PATH is correctly set up - either system wide, or in your terminal.

As a workaround you can call the LocalStack CLI python module directly:

Terminal window
python3 -m localstack.cli.main

The localstack CLI does not start the LocalStack container

Section titled “The localstack CLI does not start the LocalStack container”

If you are using the localstack CLI to start LocalStack, but the container is not starting, please check the following:

  • Uncheck the Use kernel networking for UDP option in Docker Desktop (SettingsResourcesNetwork) or follow the steps in our documentation to disable it.
  • Start LocalStack with a specific DNS address:
Terminal window
DNS_ADDRESS=0 localstack start

How should I access the LocalStack logs on my local machine?

Section titled “How should I access the LocalStack logs on my local machine?”

You can now avail logging output and error reporting using LocalStack logs. To access the logs, run the following command:

Terminal window
localstack logs

AWS requests are now logged uniformly in the INFO log level (set by default or when DEBUG=0). The format is:

AWS <service>.<operation> => <http-status> (<error type>)

Requests to HTTP endpoints are logged in a similar way:

2022-09-12T10:39:21.165 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.ListBuckets => 200
2022-09-12T10:39:41.315 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.CreateBucket => 200
2022-09-12T10:40:04.662 INFO --- [ asgi_gw_0] localstack.request.aws : AWS s3.PutObject => 200
2022-09-12T11:01:55.799 INFO --- [ asgi_gw_0] localstack.request.http : GET / => 200

How should I share the LocalStack logs for troubleshooting?

Section titled “How should I share the LocalStack logs for troubleshooting?”

You can share the LocalStack logs with us to help us identify issues. To share the logs, call the diagnostic endpoint:

Terminal window
curl -s localhost:4566/_localstack/diagnose | gzip -cf > diagnose.json.gz

Ensure that the diagnostic endpoint is run after you have tried reproducing the affected task. After running the task, run the diagnostic endpoint and share the archive file with your team members or LocalStack Support.

My application cannot reach LocalStack over the network

Section titled “My application cannot reach LocalStack over the network”

We have extensive network troubleshooting documentation available here.

If this does not solve your problem then please reach out to LocalStack Support.

Now that you’ve completed installation, proceed to the Local Development Guide to start LocalStack and deploy a serverless API. This guide walks you through deploying a Lambda function backed by a DynamoDB table entirely on your local machine.

Was this page helpful?