Web dashboard for monitoring DotNetWorkQueue queues across SQL Server, PostgreSQL, Redis, and more
2.5K
Web dashboard for monitoring and managing DotNetWorkQueue message queues. Provides a Blazor Server UI and REST API in a single container.
docker run -d \
--name dnwq-dashboard \
-p 8080:8080 \
-v "$(pwd)/appsettings.json:/app/appsettings.json:ro" \
blehnen74/dotnetworkqueue-dashboard:latest
Create an appsettings.json:
{
"Dashboard": {
"Connections": [
{
"Transport": "SqlServer",
"ConnectionString": "Server=host.docker.internal;Database=mydb;User Id=sa;Password=YourPassword;TrustServerCertificate=true",
"DisplayName": "SQL Server",
"Queues": ["myqueue"]
}
]
},
"DashboardApi": {
"BaseUrl": "http://localhost:8080"
}
}
Replace SqlServer with your transport: PostgreSql, Redis, SQLite, or LiteDb. Add multiple entries to monitor several transports at once.
A full example config with all five transports is available at appsettings.example.json.
services:
dashboard:
image: blehnen74/dotnetworkqueue-dashboard:latest
ports:
- "8080:8080"
volumes:
- ./appsettings.json:/app/appsettings.json:ro
/api/v1/dashboard/* endpoints/swagger (enabled by default)X-Api-Key header for API access controlAdd to your appsettings.json:
{
"DashboardAuth": {
"Username": "admin",
"PasswordHash": "<sha256-hex-of-your-password>"
}
}
Generate a hash: echo -n 'yourpassword' | sha256sum | awk '{print $1}'
These transports use local database files. Mount the data directory into the container:
docker run -d \
-p 8080:8080 \
-v "$(pwd)/appsettings.json:/app/appsettings.json:ro" \
-v "/path/to/data:/data/sqlite:ro" \
blehnen74/dotnetworkqueue-dashboard:latest
Set the connection string to the mounted path: "Data Source=/data/sqlite/myqueue.db"
If your queues contain custom POCO types, the dashboard needs those assemblies to display typed message bodies. Mount a directory with your DLLs and configure the path:
docker run -d \
-p 8080:8080 \
-v "$(pwd)/appsettings.json:/app/appsettings.json:ro" \
-v "/path/to/your/dlls:/app/plugins:ro" \
blehnen74/dotnetworkqueue-dashboard:latest
Add to appsettings.json:
{
"Dashboard": {
"AssemblyPaths": ["/app/plugins"]
}
}
You can also build a derived image instead: FROM blehnen74/dotnetworkqueue-dashboard:latest and COPY your DLLs into /app/plugins/.
| Tag | Description |
|---|---|
latest | Latest build from master |
x.y.z | Matches DotNetWorkQueue NuGet package version |
Content type
Image
Digest
sha256:c18ca1b11…
Size
107.6 MB
Last updated
about 22 hours ago
docker pull blehnen74/dotnetworkqueue-dashboard