McDoit.Aspire.Hosting.Ministack adds an Aspire resource for running Ministack (Local AWS emulator) in an AppHost.
AddMinistack(...)extension forIDistributedApplicationBuilder- HTTP endpoint + health check wiring for the
ministackcontainer - AWS profile bootstrapping for local development credentials
- Container customization via
MinistackContainerOptions WithStackport(...)— adds the Stackport web UI for browsing local AWS resourcesWithCdkBootstrap(...)— runsnpx cdk bootstrapagainst the local Ministack instance when it becomes available
dotnet add package McDoit.Aspire.Hosting.Ministackusing Amazon;
using Aspire.Hosting;
using McDoit.Aspire.Hosting.Ministack;
var builder = DistributedApplication.CreateBuilder(args);
var awsConfig = builder.AddAWSSDKConfig()
.WithRegion(RegionEndpoint.USEast1);
builder.AddMinistack(awsConfig);
builder.Build().Run();builder.AddMinistack(
awsConfig,
configureContainer: options =>
{
options.Registry = "ghcr.io";
options.Image = "acme/ministack";
options.Tag = "2.3.4";
options.Port = 14566;
options.Lifetime = ContainerLifetime.Persistent;
});Stackport is a universal AWS resource browser for local emulators.
Chain WithStackport() to add it alongside Ministack:
builder.AddMinistack(awsConfig)
.WithStackport();An optional port parameter fixes the host port; omitting it lets Aspire assign one automatically.
WithCdkBootstrap() runs npx cdk bootstrap against the Ministack endpoint when it becomes available.
An optional qualifier scopes the bootstrap stack:
builder.AddMinistack(awsConfig)
.WithCdkBootstrap("myapp")
.WithStackport();| Option | Environment variable | Default | Description |
|---|---|---|---|
Registry |
— | docker.io |
Container registry |
Image |
— | ministackorg/ministack |
Container image |
Tag |
— | latest |
Image tag |
Port |
— | (proxied) | Host port; when set, proxying is disabled |
Lifetime |
PERSIST_STATE, S3_PERSIST |
Session |
Persistent enables file-based state persistence |
The Ministack resource is automatically excluded from the Aspire publish manifest
(ExcludeFromManifest). It is intended for local development only and will not be
included when publishing or deploying the AppHost.
The way it works is by setting an application specific profile populated by Ministack endpoint as service endpoint
Just referencing awsConfig will enable other resources to connect
src/McDoit.Aspire.Hosting.Ministack- package sourcesamples/McDoit.Aspire.Hosting.Ministack.Sample.CloudFormation.AppHost- runnable Aspire sample using CloudFormationsamples/McDoit.Aspire.Hosting.Ministack.Sample.Cdk.AppHost- runnable Aspire sample using CDK bootstraptests/McDoit.Aspire.Hosting.Ministack.Tests- unit + integration tests