A real-time subject hierarchy visualizer for NATS, built with Angular 19+ and TailwindCSS.
- Dynamic Tree View: Automatically builds a subject hierarchy based on incoming messages.
- Heatmap: Visual indicators for message rates (Green/Yellow/Red/Purple).
- Inspector: View payloads and stats for specific subjects.
- Zoneless Angular: Uses the latest Angular signals for high performance.
You can run this application using Docker (Method 1) or Locally (Method 2).
This method builds and runs the Web UI in a container.
Prerequisites: Docker Desktop or Docker Engine.
-
Clone the repository
git clone https://github.com/majkelx/nats-explorer.git cd nats-explorer -
Start the App
docker compose up -d --build
-
Open the App
- Access the UI: http://localhost:4200
- Click Connect and enter your NATS server URL (e.g.,
ws://host.docker.internal:9222if running NATS locally outside Docker).
-
Stop the App
docker compose down
Run the application directly on your machine using Node.js.
Prerequisites:
- Node.js v18.19.1+ or v20.11.1+ (Angular 21 requires these versions).
-
Clone the repository
git clone https://github.com/majkelx/nats-explorer.git cd nats-explorer -
Install Dependencies
npm install
-
Run Development Server
npm start
This command runs
ng serve. -
Open the App
- Access the UI: http://localhost:4200
The application uses WebSockets to connect to NATS.
- Port: Usually
9222(if configured manually) or80/443(if behind a load balancer). - Protocol:
- Use
ws://for localhost or http sites. - Use
wss://(Secure) if the app is hosted on HTTPS.
- Use
If you deploy this app to an HTTPS domain, browsers will block connections to insecure ws:// addresses.
- Fix 1: Use
wss://(Secure WebSockets). - Fix 2: For local/internal testing, click the "Lock/Not Secure" icon in your browser URL bar -> Site Settings -> Allow Insecure Content.
Ensure your NATS server has WebSockets enabled in its config:
websocket {
port: 9222
no_tls: true # set to false if using certs
}