Free local AWS emulator: 73 AWS services and a web console on your machine (formerly Mimir)
568
See your cloud, before you ship your cloud.
Mimir is now Goku, everywhere. This is the new home of the image formerly published as
tanujsoni027/mimir-aws. Every name is Goku now: the imagetanujsoni027/goku, thegokucontainer and command, andGOKU_*settings. Existing installs move over by themselves, and the old names keep working for now, so start using the goku names. Coming from Mimir? See Upgrading.
Goku is a local AWS cloud for building, testing and learning cloud infrastructure on your machine. You don't need an AWS account, you don't pay an AWS bill, and you don't need cloud credentials.
macOS / Linux:
curl -fsSL https://tanuj24.github.io/goku/install.sh | sh
goku start
Windows (PowerShell):
irm https://tanuj24.github.io/goku/install.ps1 | iex
goku start
goku start pulls this image, starts it with your data folder (~/.goku/data, or %LOCALAPPDATA%\Goku\data on Windows) and opens the console. Point your AWS CLI and SDKs at it with eval "$(goku env)" (or goku env --shell powershell | Invoke-Expression on Windows).
mkdir -p ~/.goku/data
docker run -d --name goku \
-p 8080:80 -p 4566:4566 -p 5500-5524:5500-5524 \
-v /var/run/docker.sock:/var/run/docker.sock \
-v ~/.goku/data:/app/data \
-v /tmp/goku-glue:/tmp/goku-glue \
tanujsoni027/goku:latest
Console: http://localhost:8080
AWS endpoint: http://localhost:4566, region us-east-1, any local credentials such as test / test.
Everything lives in your data folder: every bucket, table, function and job, and the data of its engines too:
Stop Goku, update it or reset Docker, and you resume where you left off. Without the -v …:/app/data, state is kept in the goku-data volume instead.
Updates: the console shows when a new version is out. Update now replaces the running container with the same settings and data, and rolls back if the new version isn't healthy. GOKU_UPDATE_CHECK=off turns checks off.
Settings: -e GOKU_SERVICES=all subscribes every service on first start. Every setting is a GOKU_* environment variable.
With the CLI, install it (above) and run goku update. It saves your state, moves it into the data folder, renames the mimir container to goku and starts the newest Goku on this image. Your mimir-data volume stays as a backup.
With plain Docker:
docker stop -t 60 mimir
mkdir -p ~/.goku/data
docker cp mimir:/app/data/. ~/.goku/data/ # works with every Mimir version
docker rm mimir
docker pull tanujsoni027/goku:latest
# then the docker run command above
| Before (Mimir) | Now (Goku) |
|---|---|
Image tanujsoni027/mimir-aws | tanujsoni027/goku |
Container mimir | goku |
Volume mimir-data | the data folder ~/.goku/data |
MIMIR_* settings | GOKU_* |
/_mimir/... paths | /_goku/... |
*.mimir.local host names | *.goku.local |
mimir-ca.pem | goku-ca.pem (the same CA) |
/tmp/mimir-glue | /tmp/goku-glue |
mimir command | goku |
The old names keep working for now and will be removed in a future release. Goku prints a note whenever it meets one.
http://localhost:8080/mcp. Claude Code, Claude Desktop, Cursor, VS Code, Windsurf and other MCP clients can create and inspect resources, call any AWS API, read logs, take snapshots and inject faults, all on your machine.
claude mcp add goku -- goku mcp (the goku CLI starts Goku if needed), or claude mcp add --transport http goku http://localhost:8080/mcp.goku mcp config <client> prints the setup.aws_call for any operation of the emulated AWS services. There is also an AI assistants page in the console.goku mcp and goku mcp config.goku update --cli, goku data, and a daily notice when a new version is out.RDS runs real PostgreSQL, MySQL and MariaDB. ElastiCache and MemoryDB run Valkey and Redis, DocumentDB runs MongoDB, and Amazon MQ runs RabbitMQ and ActiveMQ. EKS runs k3s, EMR Serverless and Glue run Spark, MWAA runs Airflow, and Lambda and ECS run real containers. That's why the Docker socket mount is needed.
The data endpoints use a dedicated port range that won't clash with a local Redis or Postgres:
-p 5500-5524:5500-5524.latest, v4, 4.1.0: Goku 4.1, multi-arch (linux/amd64, linux/arm64)4.0.0: Goku 4.0Earlier releases were published as tanujsoni027/mimir-aws, which also receives the same Goku releases for now.
/var/run/docker.sock (needed for Lambda, RDS, ECS, Glue and the other engine-backed services)8080 (console) and 4566 (AWS endpoint) freeGoku is free to use.
Content type
Image
Digest
sha256:0c5a6cecb…
Size
465.6 MB
Last updated
about 15 hours ago
docker pull tanujsoni027/goku