Skip to content

A modern, responsive alternative to the default RabbitMQ Management UI, built with Next.js and shadcn/ui. Features real-time monitoring, queue insights, and an intuitive interface for better RabbitMQ management experience.

License

Notifications You must be signed in to change notification settings

Ralve-org/RabbitScout

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

9 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

RabbitScout Logo

RabbitScout

Modern, intuitive dashboard for RabbitMQ management - A powerful alternative to the default RabbitMQ Management UI.

License RabbitMQ Management Next.js 14 Stars Issues

Features โ€ข Getting Started โ€ข Tech Stack โ€ข Screenshots โ€ข Contributing โ€ข License

๐Ÿš€ Features

RabbitScout provides a comprehensive suite of features for managing your RabbitMQ instance:

๐Ÿ“Š Analytics & Monitoring

  • Real-time overview of system metrics
  • Total message count monitoring
  • Queue statistics and distribution
  • Active connections tracking
  • Memory usage visualization
  • Live message rate graphs
  • Queue-specific message rate tracking

๐Ÿ’ผ Current Features

  • Queue Management

    • ๐Ÿ“‹ Detailed queue listings with search and filter
    • ๐Ÿ” Message inspection capabilities
    • โšก Real-time queue metrics
    • ๐Ÿ—‘๏ธ Queue operations (purge, delete)
    • ๐Ÿ“ฅ Message publishing interface
  • Exchange & Binding Viewing

    • ๐Ÿ”„ Exchange configuration viewing
    • ๐Ÿ‘๏ธ View-only binding information
  • Connection & Channel Monitoring

    • ๐Ÿ‘ฅ View active connections
    • ๐Ÿ“ก Basic channel status viewing
    • ๐Ÿ“‰ Connection metrics viewing

๐Ÿšง Features In Development

  • Binding Management

    • Binding creation and modification
    • Advanced binding configuration
  • Connection & Channel Management

    • Advanced connection controls
    • Channel management actions
    • Detailed channel metrics
    • Connection force-close capabilities

๐Ÿ›ก๏ธ Security Features

  • ๐Ÿ” Secure authentication system
  • ๐Ÿช Cookie-based session management
  • โš™๏ธ Environment variable configuration
  • ๐Ÿ”’ Secure credential handling

๐Ÿ’ซ User Experience

  • ๐ŸŒ“ Dark/Light mode support
  • ๐Ÿ“ฑ Responsive design for all devices
  • โšก Real-time updates
  • ๐ŸŽจ Modern, clean interface

๐Ÿš€ Getting Started

System Requirements

  • Node.js 18.17 or later
  • RabbitMQ Server 3.x or later
  • Modern web browser

Prerequisites

Before you begin, ensure you have:

  • ๐Ÿ”ง Access to a RabbitMQ instance
  • ๐Ÿ“ RabbitMQ management credentials
  • ๐Ÿ’ป Node.js installed locally

Installation

  1. Clone the repository

    git clone https://github.com/Ralve-org/RabbitScout.git
    cd RabbitScout
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Configure environment variables

    • Copy the example environment file
      cp .env.example .env
    • Update the .env file with your RabbitMQ credentials:
      # Required Configuration
      NEXT_PUBLIC_RABBITMQ_HOST=your-rabbitmq-host    # RabbitMQ server hostname
      NEXT_PUBLIC_RABBITMQ_PORT=15672                 # RabbitMQ management port
      NEXT_PUBLIC_RABBITMQ_VHOST=/                    # Virtual host
      
      # Authentication
      RABBITMQ_USERNAME=your-username                 # RabbitMQ admin username
      RABBITMQ_PASSWORD=your-password                 # RabbitMQ admin password
      
      # Application Settings
      NEXT_PUBLIC_API_URL=http://localhost:3000       # Application URL

Authentication

  1. Access the Login Page

    • Navigate to http://localhost:3000/login
    • You'll be presented with a clean, modern login interface
  2. Enter Credentials

    • Username: Your RabbitMQ username (default: guest)
    • Password: Your RabbitMQ password (default: guest)
  3. Important Notes

    • Default credentials (guest/guest) only work for localhost
    • For remote servers, use your RabbitMQ server credentials
    • Ensure your RabbitMQ user has management permissions
  4. Session Management

    • Login sessions are secured with HTTP-only cookies
    • Sessions expire after period of inactivity
    • Use the logout button to end your session manually

Development

Run the development server:

npm run dev
# or
yarn dev

Access the dashboard at http://localhost:3000

Production Build

Build for production:

npm run build
# or
yarn build

Start the production server:

npm start
# or
yarn start

๐Ÿณ Docker Usage

You can run RabbitScout using Docker in two ways:

Using Docker Compose

services:
  rabbitscout:
    image: ghcr.io/ralve-org/rabbitscout:latest
    ports:
      - "3000:3000"
    environment:
      - NEXT_PUBLIC_RABBITMQ_HOST=your-rabbitmq-host
      - NEXT_PUBLIC_RABBITMQ_PORT=15672
      - NEXT_PUBLIC_RABBITMQ_VHOST=/
      - RABBITMQ_USERNAME=your-username
      - RABBITMQ_PASSWORD=your-password
      - NEXT_PUBLIC_API_URL=http://localhost:3000

Using Docker CLI

docker run -p 3000:3000 \
  -e NEXT_PUBLIC_RABBITMQ_HOST=your-rabbitmq-host \
  -e NEXT_PUBLIC_RABBITMQ_PORT=15672 \
  -e NEXT_PUBLIC_RABBITMQ_VHOST=/ \
  -e RABBITMQ_USERNAME=your-username \
  -e RABBITMQ_PASSWORD=your-password \
  -e NEXT_PUBLIC_API_URL=http://localhost:3000 \
  ghcr.io/ralve-org/rabbitscout:latest

๐Ÿ› ๏ธ Tech Stack

๐Ÿ“ฆ Project Structure

rabbitscout/
โ”œโ”€โ”€ app/                          # Next.js app directory
โ”‚   โ”œโ”€โ”€ api/                      # API routes
โ”‚   โ”‚   โ”œโ”€โ”€ auth/                # Authentication endpoints
โ”‚   โ”‚   โ”œโ”€โ”€ queues/              # Queue management endpoints
โ”‚   โ”‚   โ””โ”€โ”€ stats/               # Statistics and metrics endpoints
โ”‚   โ”œโ”€โ”€ dashboard/               # Dashboard pages
โ”‚   โ”‚   โ”œโ”€โ”€ connections/         # Connection management
โ”‚   โ”‚   โ”œโ”€โ”€ exchanges/           # Exchange management
โ”‚   โ”‚   โ”œโ”€โ”€ queues/             # Queue management
โ”‚   โ”‚   โ””โ”€โ”€ page.tsx            # Main dashboard
โ”‚   โ””โ”€โ”€ login/                   # Authentication pages
โ”œโ”€โ”€ components/                   # React components
โ”‚   โ”œโ”€โ”€ auth/                    # Authentication components
โ”‚   โ”œโ”€โ”€ dashboard/               # Dashboard components
โ”‚   โ”‚   โ”œโ”€โ”€ message-rate-chart   # Message rate visualization
โ”‚   โ”‚   โ”œโ”€โ”€ overview-stats       # System statistics
โ”‚   โ”‚   โ”œโ”€โ”€ queue-distribution   # Queue metrics
โ”‚   โ”‚   โ””โ”€โ”€ queued-messages      # Queue message charts
โ”‚   โ”œโ”€โ”€ ui/                      # Reusable UI components
โ”‚   โ””โ”€โ”€ shared/                  # Shared components
โ”œโ”€โ”€ docs/                        # Documentation
โ”‚   โ””โ”€โ”€ assets/                  # Documentation assets
โ”œโ”€โ”€ hooks/                       # Custom React hooks
โ”‚   โ”œโ”€โ”€ use-toast.ts            # Toast notifications
โ”‚   โ””โ”€โ”€ use-websocket.ts        # WebSocket connections
โ”œโ”€โ”€ lib/                         # Utility functions
โ”‚   โ”œโ”€โ”€ api/                    # API client functions
โ”‚   โ”œโ”€โ”€ auth/                   # Authentication utilities
โ”‚   โ”œโ”€โ”€ constants/              # Constants and configs
โ”‚   โ”œโ”€โ”€ types/                  # TypeScript types
โ”‚   โ””โ”€โ”€ utils/                  # Helper functions
โ”œโ”€โ”€ public/                      # Static assets
โ”‚   โ””โ”€โ”€ images/                 # Image assets
โ”œโ”€โ”€ .env.example                 # Example environment variables
โ”œโ”€โ”€ .eslintrc.json              # ESLint configuration
โ”œโ”€โ”€ .gitignore                  # Git ignore rules
โ”œโ”€โ”€ components.json             # UI components config
โ”œโ”€โ”€ middleware.ts               # Next.js middleware
โ”œโ”€โ”€ next.config.js             # Next.js configuration
โ”œโ”€โ”€ package.json               # Project dependencies
โ”œโ”€โ”€ postcss.config.mjs         # PostCSS configuration
โ”œโ”€โ”€ tailwind.config.ts        # Tailwind CSS configuration
โ””โ”€โ”€ tsconfig.json             # TypeScript configuration

๐ŸŽจ Screenshots

Light Mode Dashboard

Dashboard Light Mode

Dark Mode Dashboard

Dashboard Dark Mode

These screenshots showcase the dashboard overview tab in both light and dark modes, featuring:

  • Real-time message rate graphs
  • Queue distribution charts
  • System overview statistics
  • Memory usage metrics

๐Ÿ”„ Updates & Roadmap

Currently in Development

  • ๐Ÿ”— Complete binding management system
  • ๐ŸŽฎ Advanced connection & channel controls
  • ๐Ÿ“Š Enhanced channel metrics
  • ๐Ÿ”„ Connection management actions

Coming Soon

  • ๐Ÿ“Š Enhanced visualization options
  • ๐Ÿ”” Real-time notifications
  • ๐Ÿ” Advanced search capabilities
  • ๐Ÿ“ˆ Extended metrics and analytics

Known Limitations

  • Binding management functionality is currently disabled
  • Channel and connection management actions are in development
  • Some advanced features are view-only at this time

๐Ÿค Contributing

We welcome contributions! Here's how you can help:

Ways to Contribute

  • ๐Ÿ› Report bugs and issues
  • ๐Ÿ’ก Suggest new features
  • ๐Ÿ“ Improve documentation
  • ๐Ÿ”ง Submit pull requests

Development Process

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

๐Ÿ“œ License

This project is licensed under the MIT License - see the LICENSE file for details.

๐Ÿ™ Acknowledgments


Made with โค๏ธ by the Ralve team

About

A modern, responsive alternative to the default RabbitMQ Management UI, built with Next.js and shadcn/ui. Features real-time monitoring, queue insights, and an intuitive interface for better RabbitMQ management experience.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Languages