Sign inSign up

tanujsoni027/mimir-aws

By tanujsoni027

•Updated about 2 hours ago

Goku (formerly Mimir): local AWS cloud in one image. 73 services, 60 consoles, real runtimes.

Image
Developer tools
0

3.2K

tanujsoni027/mimir-aws repository overview

⁠Goku (formerly Mimir): a local AWS cloud in one Docker image

See your cloud, before you ship your cloud.

Mimir is now Goku. It's the same product with a new name, as of 4.0. The image name, your container and your saved data all stay the same, and MIMIR_* settings still work.

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/mimir/install.sh | sh
goku start

Windows (PowerShell):

irm https://tanuj24.github.io/mimir/install.ps1 | iex
goku start

goku start pulls this image, starts it 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). The former mimir command still works as a deprecated alias.

⁠Or run the image directly

docker run -d --name mimir \
  -p 8080:80 -p 4566:4566 -p 5500-5524:5500-5524 \
  -v /var/run/docker.sock:/var/run/docker.sock \
  -v /tmp/mimir-glue:/tmp/mimir-glue \
  tanujsoni027/mimir-aws:latest
  • Console: http://localhost:8080⁠
  • AWS endpoint: http://localhost:4566⁠, region us-east-1, any local credentials such as test / test.
  • State persists automatically in the mimir-data Docker volume across restarts and image updates.
  • Settings: -e GOKU_SERVICES=all subscribes every service on first start. Every setting is a GOKU_* environment variable, and the former MIMIR_* names still work.

⁠What's new in 4.0

  • Mimir is now Goku: same product, new name; existing installs and data carry over.
  • 73 AWS-compatible services and 60 console services, with one-click sample data on every service page.
  • Start light, subscribe to what you use: core services on first start; add others (or presets) on the Services page.
  • Resource Center: every running engine container with live memory and CPU, plus pause, stop and cleanup.
  • IAM Policy Lab: effective access with evidence, policy drafts with semantic diffs and blast radius, and IAM tests.
  • AWS Glue 6.0 and 5.1, DynamoDB vector search, every current Lambda runtime on arm64 and x86_64, and a rebuilt ECS.
  • Developer tools:
    • Lambda step-through debugging from VS Code, IntelliJ, PyCharm and GoLand
    • environment snapshots
    • fault injection
    • least-privilege IAM from real activity
    • AWS Organizations with SCPs
    • request journeys with DLQ redrive
    • cloning staging from a real account (read-only)
    • Step Functions testing
    • Terraform, CDK and Pulumi support with a pre-deploy cost and IAM review
    • an operation coverage map

⁠Real engines, not mocks

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.

Data endpoints use a dedicated port range that won't clash with a local Redis or Postgres:

  • 5500–5524: RDS, ElastiCache and Neptune. These are proxied, so the run command includes -p 5500-5524:5500-5524.
  • Other engines (up to 5659): bound on the host automatically.
  • 5380: Route 53 DNS.

⁠Tags

  • latest, v4, 4.0.0: Goku 4.0, multi-arch (linux/amd64, linux/arm64)
  • v3, v2: earlier Mimir releases

⁠Requirements

  • Docker Desktop (macOS, Windows) or Docker Engine / Docker Desktop (Linux)
  • Docker socket access at /var/run/docker.sock (needed for Lambda, RDS, ECS, Glue and the other engine-backed services)
  • Ports 8080 (console) and 4566 (AWS endpoint) free

⁠FAQ

Is Goku a production AWS replacement? No. It's a local development and testing environment.

Does it need an AWS account? No. Everything runs locally.

Can existing AWS SDK code use it? Yes. Point the SDK at http://localhost:4566.

I use Mimir. Do I need to change anything? No. goku update (or pulling latest) upgrades in place, and your container, data volume, mimir command and MIMIR_* settings keep working.

Goku is free to use.

Tag summary

Content type

Image

Digest

sha256:1000b2712…

Size

461.3 MB

Last updated

about 2 hours ago

docker pull tanujsoni027/mimir-aws