miniblue
Local Azure development. One binary. No account needed.
miniblue is a free, open-source Azure emulator that runs entirely on your machine. Test your Azure apps locally without an Azure account, network connection, or credit card.
Why miniblue?
Azure developers have to juggle 5+ separate emulators (Azurite, Cosmos DB Emulator, Functions Core Tools, etc.) just to get basic local dev working. miniblue replaces all of them with a single binary on a single port.
That's it. 21 Azure services are now running locally.
What's included
| Service | Description |
|---|---|
| Resource Groups | ARM resource group management |
| Blob Storage | Containers, blobs, upload/download |
| Table Storage | Entity CRUD operations |
| Queue Storage | Send/receive/peek messages |
| Key Vault | Secrets management |
| Cosmos DB | Document CRUD (SQL API) |
| Service Bus | Queues, topics, messaging |
| Azure Functions | Function app registration |
| Virtual Networks | VNets and subnets |
| DNS Zones | Zone and record management |
| Container Registry | Registry management |
| Event Grid | Topics and event publishing |
| App Configuration | Key-value configuration store |
| Managed Identity | IMDS token endpoint |
| DB for PostgreSQL | Flexible server + database management |
| DB for MySQL | Flexible server + database management |
| Azure SQL Database | Server + database management |
| Azure Cache for Redis | Cache management + key listing |
| Container Instances | Container group lifecycle |
Works with your tools
- Terraform -
metadata_host = "localhost:4567"and you're done - azlocal CLI - like
awslocalfor LocalStack - Azure CLI - custom cloud registration
- Any Azure SDK - just point the endpoint to
http://localhost:4566 - curl - standard REST API
Quick start
# Install
go install github.com/moabukar/miniblue/cmd/miniblue@latest
# Or use Docker
docker run -p 4566:4566 -p 4567:4567 moabukar/miniblue:latest
# Create a resource group
curl -X PUT "http://localhost:4566/subscriptions/sub1/resourcegroups/myRG?api-version=2020-06-01" \
-H "Content-Type: application/json" \
-d '{"location": "eastus"}'