WorldDirect.HealthChecks.MiniUI
0.3.0
Prefix Reserved
dotnet add package WorldDirect.HealthChecks.MiniUI --version 0.3.0
NuGet\Install-Package WorldDirect.HealthChecks.MiniUI -Version 0.3.0
<PackageReference Include="WorldDirect.HealthChecks.MiniUI" Version="0.3.0" />
<PackageVersion Include="WorldDirect.HealthChecks.MiniUI" Version="0.3.0" />
<PackageReference Include="WorldDirect.HealthChecks.MiniUI" />
paket add WorldDirect.HealthChecks.MiniUI --version 0.3.0
#r "nuget: WorldDirect.HealthChecks.MiniUI, 0.3.0"
#:package WorldDirect.HealthChecks.MiniUI@0.3.0
#addin nuget:?package=WorldDirect.HealthChecks.MiniUI&version=0.3.0
#tool nuget:?package=WorldDirect.HealthChecks.MiniUI&version=0.3.0
HealthChecks.MiniUI
HealthChecks.MiniUI is a tiny ASP.NET Core health page helper that renders a human-friendly HTML status page on top of Microsoft health checks.
What it does
- Keeps your machine endpoint separate from the human UI
- Renders health checks as a simple HTML page
- Shows status, description, duration, tags, and exception details
- Uses the existing Microsoft health check pipeline
How it looks
These screenshots are taken from the demo application.
| Dark mode | Light mode | Exception pop-out |
|---|---|---|
Installation
Install the package from NuGet:
dotnet add package WorldDirect.HealthChecks.MiniUI
Basic usage
Map the page in your app startup code:
// Microsoft.Extensions.HealthChecks
app.MapHealthChecks("/healthz");
// MiniUI HealthCheck page
app.MapSimpleHealthPage("/health-ui", options =>
{
options.Title = "My App Health";
});
Response status codes
By default, the page returns HTTP 200 for all overall health states (Healthy, Degraded, Unhealthy).
You can override this per status:
using Microsoft.AspNetCore.Http;
app.MapSimpleHealthPage("/health-ui", options =>
{
options.StatusCodes.Healthy = StatusCodes.Status200OK;
options.StatusCodes.Degraded = StatusCodes.Status200OK;
options.StatusCodes.Unhealthy = StatusCodes.Status503ServiceUnavailable;
});
Filtering which checks are executed
By default the page executes all registered health checks. Use Predicate to select a subset, for example by tag. Checks that are filtered out are not executed at all:
app.MapSimpleHealthPage("/health-ui", options =>
{
options.Predicate = registration => registration.Tags.Contains("ui");
});
This is the same Func<HealthCheckRegistration, bool> shape as HealthCheckOptions.Predicate used by MapHealthChecks.
Plain text output
Opt in with EnablePlainText to serve a text/plain rendering to clients that do not accept text/html, such as curl or a container health check. Browsers still get the HTML page.
app.MapSimpleHealthPage("/health-ui", options =>
{
options.EnablePlainText = true;
});
$ curl http://localhost:5000/health-ui
Health Checks
Status: Unhealthy
Duration: 1002.67 ms
Generated: 2026-09-05 09:12:33Z
| NAME | STATUS | DESCRIPTION | DURATION |
|---------|-----------|----------------------|------------|
| db | Healthy | connection ok | 1.5 ms |
| failing | Unhealthy | queue backlog too... | 1002.67 ms |
Descriptions are shortened with ... so the table stays readable in a terminal.
Combine it with StatusCodes.Unhealthy so curl --fail works.
Demo app
The repository includes a small demo app in demo/HealthChecks.MiniUI.Demo.
Run it from the repo root:
dotnet run --project demo/HealthChecks.MiniUI.Demo/HealthChecks.MiniUI.Demo.csproj
Then open:
/health-uifor the UI (HTML in a browser, plain text forcurl)/healthzfor the machine endpoint
Notes
- The UI is intentionally small and stateless.
- Route configuration is map-time, matching the usual ASP.NET Core endpoint style.
- The page is designed to stay simple and easy to extend later.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- No dependencies.
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.