hmake98/rmq-board

By hmake98

Updated 8 months ago

A simple, intuitive and lightweight admin UI for RabbitMQ

Image
Message queues
0

1.3K

hmake98/rmq-board repository overview

RMQ Board

A modern, intuitive, and lightweight admin UI for RabbitMQ with real-time monitoring.

Docker Pulls License Node Version

What is RMQ Board?

RMQ Board provides a modern alternative to the default RabbitMQ management interface with enhanced features for monitoring and debugging your RabbitMQ instances. Built with React and Node.js, it offers real-time updates, message inspection, and a beautiful dark-themed UI.

Features

  • Real-time Dashboard - Live monitoring of queues, exchanges, connections, and consumers
  • Real-time Throughput Graph - Visual message rate monitoring with 1m/5m/15m time ranges
  • Message Inspection - View message contents without consuming them (non-destructive)
  • DLQ Inspector - Dedicated Dead Letter Queue inspector with x-death header analysis
  • Message Publishing - Send messages with JSON validation and formatting
  • Connections & Consumers - Monitor active connections and consumer details
  • AMQP Connection - Direct AMQP connection for enhanced reliability
  • Dark Mode Design - Beautiful dark theme with orange accent colors
  • Responsive Design - Works on desktop, tablet, and mobile devices

Quick Start

Docker Run
docker run -d \
  --name rmq-board \
  -p 8080:8080 \
  -e RABBITMQ_HOST=host.docker.internal \
  -e RABBITMQ_PORT=5672 \
  -e RABBITMQ_USER=guest \
  -e RABBITMQ_PASSWORD=guest \
  -e RABBITMQ_MANAGEMENT_PORT=15672 \
  hmake98/rmq-board:latest

Then access RMQ Board at: http://localhost:8080

Note: Use host.docker.internal to connect to RabbitMQ running on your host machine.

Docker Compose
services:
  rabbitmq:
    image: rabbitmq:3-management
    hostname: rabbitmq
    ports:
      - "5672:5672"
      - "15672:15672"
    environment:
      - RABBITMQ_DEFAULT_USER=guest
      - RABBITMQ_DEFAULT_PASS=guest
    healthcheck:
      test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"]
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 30s
    restart: unless-stopped

  rmq-board:
    image: hmake98/rmq-board:latest
    ports:
      - "8080:8080"
    environment:
      - RABBITMQ_HOST=rabbitmq
      - RABBITMQ_PORT=5672
      - RABBITMQ_USER=guest
      - RABBITMQ_PASSWORD=guest
      - RABBITMQ_VHOST=/
      - RABBITMQ_MANAGEMENT_PORT=15672
    depends_on:
      rabbitmq:
        condition: service_healthy
    restart: unless-stopped

Run with:

docker-compose up -d

Environment Variables

VariableDescriptionDefault
RABBITMQ_HOSTRabbitMQ hostnamelocalhost
RABBITMQ_PORTRabbitMQ AMQP port5672
RABBITMQ_USERRabbitMQ usernameguest
RABBITMQ_PASSWORDRabbitMQ passwordguest
RABBITMQ_VHOSTRabbitMQ virtual host/
RABBITMQ_MANAGEMENT_PORTRabbitMQ management API port15672
RABBITMQ_SSLEnable SSL connectionfalse
SSL_VERIFYVerify SSL certificatestrue
LOG_LEVELLogging level (debug, info, warn, error)info
REFRESH_INTERVALData refresh interval (ms)5000

Cloud Provider Usage

AWS MQ (Amazon MQ for RabbitMQ)
docker run -d \
  --name rmq-board \
  -p 8080:8080 \
  -e RABBITMQ_HOST=b-xxxx.mq.region.amazonaws.com \
  -e RABBITMQ_PORT=5671 \
  -e RABBITMQ_USER=your-username \
  -e RABBITMQ_PASSWORD=your-password \
  -e RABBITMQ_MANAGEMENT_PORT=443 \
  -e RABBITMQ_SSL=true \
  -e SSL_VERIFY=false \
  hmake98/rmq-board:latest
CloudAMQP
docker run -d \
  --name rmq-board \
  -p 8080:8080 \
  -e RABBITMQ_HOST=your-instance.cloudamqp.com \
  -e RABBITMQ_PORT=5671 \
  -e RABBITMQ_USER=your-username \
  -e RABBITMQ_PASSWORD=your-password \
  -e RABBITMQ_VHOST=your-vhost \
  -e RABBITMQ_MANAGEMENT_PORT=443 \
  -e RABBITMQ_SSL=true \
  hmake98/rmq-board:latest

Architecture

RMQ Board runs as a single container with:

  • Nginx (port 8080) - Serves the React frontend and proxies API requests
  • Node.js Backend (internal) - Connects to RabbitMQ via AMQP and Management API

Only port 8080 is exposed. The backend runs internally and is not directly accessible.

Security Considerations

  • This image doesn't include authentication - secure it behind a reverse proxy with auth
  • Use a dedicated RabbitMQ user with limited permissions for production
  • Consider network isolation in production environments
  • Never expose RMQ Board directly to the internet without authentication

Resource Usage

  • Memory: ~100MB RAM
  • CPU: Minimal usage
  • Storage: Stateless (no persistent storage needed)
  • Image Size: ~200MB

API Endpoints

RMQ Board exposes a REST API (via Nginx proxy):

  • GET /api/overview - RabbitMQ server overview
  • GET /api/queues - List all queues
  • GET /api/exchanges - List all exchanges
  • GET /api/bindings - List all bindings
  • GET /api/connections - List all connections
  • GET /api/consumers - List all consumers
  • GET /api/queues/:vhost/:name/get - Get messages (non-destructive)
  • POST /api/exchanges/:vhost/:name/publish - Publish a message

Health Check

The container includes a built-in health check:

docker inspect --format='{{.State.Health.Status}}' rmq-board

Tags

  • latest - Latest stable release
  • 1.0.0 - Version 1.0.0

Source Code & Issues

License

This project is licensed under the MIT License.

Tag summary

Content type

Image

Digest

sha256:5f8cfa163

Size

51.7 MB

Last updated

8 months ago

docker pull hmake98/rmq-board