Skip to content
Get Started for Free

Installation

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

Use lstk to install, authenticate, and start LocalStack for Snowflake with minimal setup.

LocalStack for Snowflake features require an Auth Token to activate your running instance. lstk handles authentication through a browser-based login flow, while Docker and CI workflows can use LOCALSTACK_AUTH_TOKEN.

lstk is a lightweight CLI for LocalStack that manages the authentication and container lifecycle for the AWS, Snowflake, and Azure emulators in a single workflow.

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

Terminal window
brew install localstack/tap/lstk

lstk starts the AWS emulator by default. Select the Snowflake emulator with --type snowflake on your first start; lstk records the choice in your config.toml, so subsequent lstk start calls reuse it:

Terminal window
lstk start --type snowflake

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

Alternatively, run lstk interactively with no existing config file and choose s for Snowflake when prompted at the first-run emulator picker.

To pin the emulator per-project instead of changing your global default, create a project-local .lstk/config.toml:

.lstk/config.toml
[[containers]]
type = "snowflake"
port = "4566"
Terminal window
lstk update

For more details, see the lstk documentation.

Use these methods when you need explicit container configuration, want to run LocalStack alongside other services, or deploy LocalStack in CI environments. For everyday local development, lstk is usually simpler.

Use Docker Compose when you want a reusable configuration file that can be shared across a team or checked into a project repository. Create a docker-compose.yml with the following configuration:

services:
localstack:
container_name: '${LOCALSTACK_DOCKER_NAME:-localstack-snowflake}'
image: localstack/snowflake
ports:
- '127.0.0.1:4566:4566' # LocalStack Gateway
- '127.0.0.1:4510-4559:4510-4559' # external services port range
- '127.0.0.1:443:443' # LocalStack HTTPS Gateway
environment:
# Activate LocalStack for Snowflake: https://docs.localstack.cloud/snowflake/getting-started/auth-token/
- LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:?} # required
- DEBUG=${DEBUG:-0}
- PERSISTENCE=${PERSISTENCE:-0}
volumes:
- '${LOCALSTACK_VOLUME_DIR:-./volume}:/var/lib/localstack'

Execute docker compose up to start.

Use the Docker CLI for one-off starts or when you want to test a container configuration before moving it into Compose:

Terminal window
docker run \
--rm -it \
-p 127.0.0.1:4566:4566 \
-p 127.0.0.1:4510-4559:4510-4559 \
-p 127.0.0.1:443:443 \
-e LOCALSTACK_AUTH_TOKEN=${LOCALSTACK_AUTH_TOKEN:?} \
localstack/snowflake

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

Installation issues typically fall into one of three areas: getting your chosen install method working, activating your license, or reaching the emulator over the network.

If you installed via lstk and LocalStack fails to start, authenticate, or pull its image, see lstk troubleshooting.

For first-run authentication (browser login, keyring tokens, or LOCALSTACK_AUTH_TOKEN in CI), refer to Authentication and the Auth Token guide.

If you started LocalStack with Docker Compose or the Docker CLI:

Ensure you have exported LOCALSTACK_AUTH_TOKEN in your shell before running docker compose up or docker run.

Stream container logs using the command that matches your install method:

Terminal window
lstk logs

For lstk CLI diagnostics (separate from container logs), see Logging.

If your Snowflake client cannot reach the emulator after installation, see the Getting Started FAQ.

Now that you’ve completed installation, proceed to the Auth Token guide to activate LocalStack and prepare your environment for local development.

Was this page helpful?