An open API service indexing awesome lists of open source software.

https://github.com/moabukar/miniblue

Local Azure development. One binary. No account needed. 25+ emulated services for testing, CI and local dev.
https://github.com/moabukar/miniblue

azure azure-emulator ci-cd cloud developer-tools devops golang localstack terraform testing

Last synced: 12 days ago
JSON representation

Local Azure development. One binary. No account needed. 25+ emulated services for testing, CI and local dev.

Awesome Lists containing this project

README

          


miniblue

miniblue

The free, open-source Azure emulator. Develop and test your Azure apps locally.


Go Version
License
CI
Docker
Docs

Local Azure development. One binary. No account needed.

> **Disclaimer:** miniblue is an independent open-source project. It is not affiliated with, endorsed by, or associated with Microsoft or Azure.

---

## Quick Start

```bash
# Homebrew
brew tap moabukar/tap && brew install miniblue

# Or Docker
docker run -p 4566:4566 -p 4567:4567 moabukar/miniblue:latest
```

Then interact with it:

```bash
azlocal health
azlocal group create --name myRG --location eastus
azlocal keyvault secret set --vault myvault --name db-pass --value secret123
azlocal storage blob upload --account myacct --container data --name file.txt --data "Hello!"
```

No Azure account or credentials needed.

## What it does

26 Azure services emulated behind a single port. Works with Terraform, Pulumi, Azure SDKs, and curl.

| Service | Service | Service |
|---------|---------|---------|
| Resource Groups | Blob Storage | Table Storage |
| Queue Storage | Key Vault | Cosmos DB |
| Service Bus | Azure Functions | Virtual Networks |
| DNS Zones | Container Registry | Event Grid |
| App Configuration | Managed Identity | DB for PostgreSQL |
| DB for MySQL | Azure SQL Database | Azure Cache for Redis |
| Container Instances | Public IP Addresses | Network Security Groups |
| Load Balancer | Application Gateway | Storage Accounts |

## How it compares

| | LocalStack (AWS) | MiniStack (AWS) | Azurite (Azure) | miniblue |
|---|---|---|---|---|
| Services | 80+ | 36 | 3 (storage only) | **26** |
| Docker image | ~1GB | ~200MB | ~300MB | **~8MB** |
| Startup | ~10s | ~5s | ~3s | **<1s** |
| Real backends | DynamoDB Local | RDS, S3, SQS | No | **Postgres, Redis, Docker** |
| Terraform | Yes | Yes | No | **Yes** |
| License | BSL | MIT | MIT | MIT |

## Terraform

https://github.com/user-attachments/assets/eea72535-6eb7-419d-9f9c-6f42b80d5efc

```bash
bash scripts/trust-cert.sh # one-time cert trust
```

```hcl
provider "azurerm" {
features {}
metadata_host = "localhost:4567"
skip_provider_registration = true
subscription_id = "00000000-0000-0000-0000-000000000000"
tenant_id = "00000000-0000-0000-0000-000000000001"
client_id = "miniblue"
client_secret = "miniblue"
}
```

See [examples/terraform/](examples/terraform/) for full examples including three-tier, serverless, and microservices scenarios.

## Real Backends (optional)

| Feature | Env var |
|---------|---------|
| Real PostgreSQL databases | `POSTGRES_URL=postgres://user:pass@host:5432/db` |
| Real Redis connectivity | `REDIS_URL=redis://host:6379` |
| Real Docker containers (ACI) | Docker daemon running |
| File persistence | `PERSISTENCE=1` |
| Postgres persistence | `DATABASE_URL=postgres://...` |

## Configuration

| Variable | Default | Description |
|----------|---------|-------------|
| `PORT` | `4566` | HTTP port |
| `TLS_PORT` | `4567` | HTTPS port |
| `LOG_LEVEL` | `info` | debug, info, warn, error |
| `SERVICES` | all | Comma-separated list to enable selectively |
| `PERSISTENCE` | off | Set to `1` for file-based persistence |

Full configuration reference in the [docs](https://miniblue.io/getting-started/configuration/).

## Documentation

Full docs at **[miniblue.io](https://miniblue.io)** covering:

- [Installation](https://miniblue.io/getting-started/installation/) (Homebrew, Docker, binary, Helm)
- [Quick Start](https://miniblue.io/getting-started/quickstart/)
- [Terraform Guide](https://miniblue.io/guides/terraform/)
- [Pulumi Guide](https://miniblue.io/guides/pulumi/)
- [SDK Guide](https://miniblue.io/guides/sdk/) (Python, Go, JavaScript)
- [CLI Reference](https://miniblue.io/guides/azure-cli/)
- [API Parity Matrix](https://miniblue.io/services/parity/)
- [Architecture](https://miniblue.io/architecture/overview/)

## Contributing

See [CONTRIBUTING.md](CONTRIBUTING.md). Each service is its own Go package under `internal/services/`.

## Sponsors


CoderCo

miniblue is sponsored by [CoderCo](https://coderco.io).

Want to sponsor this project? Reach out at devopsbymo@gmail.com.

## License

MIT - see [LICENSE](LICENSE).