You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This repository contains the source code for the Danube Admin UI, a modernweb interface for managing and monitoring a Danube messaging cluster.
3
+
The **Danube Admin UI** is a modern, responsive web dashboard designed for cluster operators and developers. It provides full visibility into cluster state, namespace topology, topic metrics, schema registry configurations, and security policies.
4
4
5
-
The UI is built with React, TypeScript, and MUI, and it communicates with the `danube-admin-gateway` backend service.
5
+
## How It Works
6
6
7
-
## Danube Admin UI Screenshots
7
+
The Admin UI is a single-page web application (built with React and Material UI) that runs entirely in your browser.
8
8
9
-
**Cluster Listing**:
9
+
It communicates over REST/HTTP with the **Danube Admin Server**, a lightweight Rust backend (referred to as the BFF, or Backend-for-Frontend) that acts as a gateway between the UI and your cluster. The Admin Server translates HTTP requests into gRPC calls directed at the active cluster leader broker, and also queries Prometheus for real-time throughput metrics.
10
10
11
-
Overview of the cluster, shows all the brokers from the cluster.
11
+
## Guided Tour
12
12
13
-
Actions:
14
-
* Unload broker, moves all topics to another available broker
15
-
* Activate a drained broker, in order to resume accepting new topics
16
-
* Click a broker row to open its details.
13
+
Here is a walkthrough of the main pages in the Danube Admin UI.
17
14
18
-

15
+
### Cluster Dashboard
16
+
The landing page is your operational command center. It is organized into three main areas:
19
17
18
+
**Cluster Info Panels**: Three summary cards at the top give you an instant snapshot of the cluster:
19
+
***Load Manager Info**: Active broker count and total topic count across the cluster.
20
+
***Traffic & Connectivity**: Aggregate RPC totals and the number of active client connections.
21
+
***Raft Consensus Health**: The current election term and last applied log index, confirming that the consensus layer is healthy and converging.
20
22
21
-
**Broker Details**:
23
+
**Cluster Nodes**: Each broker is displayed as a card showing its Raft role, status, and live stats. Operational actions like Activate, Unload, Promote, and Remove are available directly from each card.
22
24
23
-
Overview of the broker and the topics table associated with the broker.
25
+

24
26
25
-
Actions:
26
-
* Create topic, creates a topic in the cluster
27
-
* Move topic to another available broker, cluster leader selects the target broker
28
-
* Delete topic, removes the topic from the cluster
29
-
* Click a topic row to open its details.
27
+
**Load Balancing & Traffic Distribution**: Shows the cluster's balance health score, per-broker load distribution, and lets you trigger a cluster rebalance with an optional dry-run preview.
30
28
31
-

29
+

32
30
31
+
### Broker Details
32
+
Clicking on a broker card takes you to the broker detail page. Here you can see the full list of topics currently assigned to that broker, along with per-topic stats such as subscription counts and producer/consumer activity.
33
33
34
-
**Topics**:
34
+

35
35
36
-
Overview of the topics in the cluster. The NonReliable and Reliable topic is a dispatch / persistence mode, see the [Danube dispatch strategy](https://danube-docs.dev-state.com/architecture/dispatch_strategy/) for more details.
36
+
### Topics
37
+
The Topics page lists all topics across the cluster with key metadata at a glance: delivery type, active producer, subscriptions and consumers.
37
38
38
-
Actions:
39
-
* Create topic, creates a topic in the cluster
40
-
* Move topic to another available broker, cluster leader selects the target broker
41
-
* Delete topic, removes the topic from the cluster
42
-
* Click a topic row to open its details.
39
+

43
40
44
-

41
+
Clicking on a topic opens its detail page, where you can inspect traffic metrics, active producers and consumers, subscriptions, and the schema associated with the topic.
45
42
43
+

46
44
47
-
## Running with Docker (Recommended)
45
+
### Schema Registry
46
+
The Schema Registry page provides a browsable view of all registered schemas. You can inspect individual schema definitions, see which topics reference them, and review schema versions.
48
47
49
-
Run the UI in a container with minimal steps. Host port matches docker-compose (5173).
48
+

50
49
51
-
```bash
52
-
docker build -t danube-admin-ui .
53
-
docker run -d --name danube-admin-ui -p 5173:80 danube-admin-ui
54
-
```
50
+
### Namespaces
51
+
The Namespaces page lists all active namespaces in the cluster. You can create new namespaces or inspect administrative properties, allowing you to segment your messaging resources by environment, team, or application.
55
52
56
-
Open: http://localhost:5173
53
+
### Security & RBAC
54
+
Manage access control policies for your messaging resources. You can configure custom roles with fine-grained permissions (e.g., `Produce`, `Consume`, `Lookup`) and bind them to users or service accounts at cluster, namespace, or topic scopes.
57
55
58
-
Note: The UI expects the gateway at http://localhost:8080 by default.
The easiest way to spin up Danube with the Admin Server and Web UI is using Docker Compose. The setup launches **3 Brokers (Raft Consensus)**, a **CLI tool container**, a **Prometheus instance**, the **Admin BFF Server**, and the **Web UI**.
61
+
62
+
1.**Create a local directory** for the configuration:
63
+
```bash
64
+
mkdir danube-ui-demo &&cd danube-ui-demo
65
+
```
66
+
67
+
2.**Download the required files** from the official GitHub repository:
@@ -105,7 +135,7 @@ If you are developing features across the entire stack, run the backend locally
105
135
Running the development environment with Docker Compose spins up the complete prepackaged Danube backend stack (3 brokers, admin server, and Prometheus) from official images, while building and running your local `danube-admin-ui` source code inside a Node development container with hot-reloading.
106
136
107
137
1.**Prepare and run the development environment:**
108
-
Navigate to the `docker/` directory, follow the steps in [docker/README.md](file:///home/danr/danube_stream/danube-admin-ui/docker/README.md) to download the config files, and start the services:
138
+
Navigate to the `docker/` directory, follow the steps in [docker/README.md](docker/README.md) to download the config files, and start the services:
109
139
```bash
110
140
cd docker
111
141
docker-compose up --build
@@ -118,7 +148,4 @@ Running the development environment with Docker Compose spins up the complete pr
118
148
docker-compose down -v
119
149
```
120
150
121
-
The application will be available at **<http://localhost:5173>** and will automatically reload when you make changes to your local files.
122
-
123
-
124
-
151
+
The application will be available at **http://localhost:5173** and will automatically reload when you make changes to your local files.
0 commit comments