/local-stack

Preconfigured stacks of popular tools for local development.

Primary LanguageShell

local-stack

Config and utils to manage runtime dependencies for local development

To instantiate the main stack:

docker compose up

Components pre-configured as part of main stack include:

The main stack consumes ~1.3GB of memory:

By default, Docker Desktop is set to use up to 50% of your host's memory. A machine with 32GB RAM should have plenty of available memory to comfortably run the main stack. On less equipped machines, you may need to adjust how much resources you want to allocate to Docker to run both the main stack and your applications.

Optional components

OpenTelemetry and Observability

To add OpenTelemetry Collector and tools to support observability (o11y):

docker compose -f docker-o11y-compose.yaml up

Azurite

Azurite is an open-source emulator for Azure Blob, Queue Storage, and Table Storage APIs. To add Azurite to the stack:

docker compose -f docker-azure-compose.yaml up

AWS LocalStack

LocalStack is an open-source emulator for AWS. To add LocalStack to the stack:

docker compose -f docker-aws-compose.yaml up

Redis

To configure TLS locally, use gen-test-certs.sh to generate self-signed certificates. Then set REDIS_TLS_ENABLED=true in docker-compose.yaml.

The latest version of the cert generation script can be found in Redis' repo

RedisInsight configuration

Basic config

Using RedisInsight to connect to a TLS-enabled Redis instance

Basic config

Notice that because RedisInsight is running inside the same container network as Redis, redis is used as the hostname instead of localhost.

CA config

Client certificate config