Skip to content
DocsTry Aspire
DocsTry

Use community extensions for Redis hosting

⭐ Community Toolkit Redis logo

The Aspire Community Toolkit Redis hosting extensions package provides extra functionality to the Aspire.Hosting.Redis hosting package. These extensions are built and maintained by the community and are separate from the official Redis integration.

This package provides the following features:

  • DbGate management UI
  • dbx management UI

To get started with the Aspire Community Toolkit Redis hosting extensions, install the CommunityToolkit.Aspire.Hosting.Redis.Extensions NuGet package in the app host project.

Terminal
aspire add CommunityToolkit.Aspire.Hosting.Redis.Extensions

This updates your aspire.config.json with the Redis extensions package:

aspire.config.json
{
"packages": {
"CommunityToolkit.Aspire.Hosting.Redis.Extensions": "*"
}
}

To add the DbGate management UI, decorate the official Redis resource with WithDbGate / withDbGate:

apphost.mts
import { createBuilder } from './.aspire/modules/aspire.mjs';
const builder = await createBuilder();
const redis = await builder.addRedis('redis');
await redis.withDbGate();
const exampleProject = await builder.addProject(
'example-project',
'../ExampleProject/ExampleProject.csproj'
);
await exampleProject.withReference(redis);
await builder.build().run();

This adds a new DbGate resource to the app host which is available from the Aspire dashboard. DbGate is a comprehensive database management tool that provides a web-based interface for managing your Redis databases.

dbx is a lightweight, web-based database client and an alternative management UI to DbGate and Adminer. Decorate the Redis resource with WithDbx / withDbx to add it:

apphost.mts
import { createBuilder } from './.aspire/modules/aspire.mjs';
const builder = await createBuilder();
const redis = await builder.addRedis('redis');
await redis.withDbx({
containerName: 'redis-dbx',
imageTag: '0.5.33',
});
await builder.build().run();

The C# overload accepts an optional container configuration callback and containerName. The TypeScript binding accepts optional containerName and imageTag values.