Quick Start Implementation Guide

LocalStack recently moved its core services behind a paid plan. If you relied on LocalStack Community for local development and CI/CD pipelines, MiniStack is your fully open-source, free alternative.

💡
Zero Friction: No account, no API key, no sign-up, and no telemetry. MiniStack runs 38 AWS services directly on your local machine using just ~30MB of RAM at idle.

1. Installation & Initialization

MiniStack is distributed both as a Python package and a Docker container. You can choose the method that best fits your workflow.

bash — Quick Start
# Option 1: Docker Hub (Recommended for CI/CD) $ docker run -p 4566:4566 nahuelnucera/ministack # Option 2: PyPI (Simplest for Python devs) $ pip install ministack $ ministack # Verify it's running (Wait ~2 seconds) $ curl http://localhost:4566/_ministack/health {"services": {...}, "status": "available"}

2. Using with the AWS CLI

You don't need any special configurations or plugins. Just pass the --endpoint-url flag to point the CLI to MiniStack.

bash — AWS CLI
# Setup dummy credentials via environment variables $ export AWS_ACCESS_KEY_ID=test $ export AWS_SECRET_ACCESS_KEY=test $ export AWS_DEFAULT_REGION=us-east-1 # Run commands against the local emulator $ aws --endpoint-url=http://localhost:4566 s3 mb s3://my-local-bucket make_bucket: my-local-bucket $ aws --endpoint-url=http://localhost:4566 sqs create-queue --queue-name local-queue { "QueueUrl": "http://localhost:4566/000000000000/local-queue" }

3. Using with Boto3 (Python)

When writing application code, simply override the endpoint URL when instantiating your clients.

python — app.py
import boto3 # A simple helper to initialize clients def get_local_client(service_name): return boto3.client( service_name, endpoint_url="http://localhost:4566", aws_access_key_id="test", aws_secret_access_key="test", region_name="us-east-1", ) # Example: Putting an item in DynamoDB dynamodb = get_local_client("dynamodb") dynamodb.put_item( TableName="UsersTable", Item={"UserId": {"S": "123"}, "Name": {"S": "Nahuel"}} )

For Terraform, CDK, and other setups, check out our GitHub documentation.