Modern, intuitive dashboard for RabbitMQ management - A powerful alternative to the default RabbitMQ Management UI.
Features โข Getting Started โข Tech Stack โข Screenshots โข Contributing โข License
RabbitScout provides a comprehensive suite of features for managing your RabbitMQ instance:
- 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
-
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
-
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
- ๐ Secure authentication system
- ๐ช Cookie-based session management
- โ๏ธ Environment variable configuration
- ๐ Secure credential handling
- ๐ Dark/Light mode support
- ๐ฑ Responsive design for all devices
- โก Real-time updates
- ๐จ Modern, clean interface
- Node.js 18.17 or later
- RabbitMQ Server 3.x or later
- Modern web browser
Before you begin, ensure you have:
- ๐ง Access to a RabbitMQ instance
- ๐ RabbitMQ management credentials
- ๐ป Node.js installed locally
-
Clone the repository
git clone https://github.com/Ralve-org/RabbitScout.git cd RabbitScout
-
Install dependencies
npm install # or yarn install
-
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
- Copy the example environment file
-
Access the Login Page
- Navigate to
http://localhost:3000/login
- You'll be presented with a clean, modern login interface
- Navigate to
-
Enter Credentials
- Username: Your RabbitMQ username (default: guest)
- Password: Your RabbitMQ password (default: guest)
-
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
-
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
Run the development server:
npm run dev
# or
yarn dev
Access the dashboard at http://localhost:3000
Build for production:
npm run build
# or
yarn build
Start the production server:
npm start
# or
yarn start
You can run RabbitScout using Docker in two ways:
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
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
- Framework: Next.js 14
- UI Components: shadcn/ui
- Styling: Tailwind CSS
- Language: TypeScript
- State Management: React Hooks
- Data Fetching: Next.js App Router & Server Components
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
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
- ๐ Complete binding management system
- ๐ฎ Advanced connection & channel controls
- ๐ Enhanced channel metrics
- ๐ Connection management actions
- ๐ Enhanced visualization options
- ๐ Real-time notifications
- ๐ Advanced search capabilities
- ๐ Extended metrics and analytics
- Binding management functionality is currently disabled
- Channel and connection management actions are in development
- Some advanced features are view-only at this time
We welcome contributions! Here's how you can help:
- ๐ Report bugs and issues
- ๐ก Suggest new features
- ๐ Improve documentation
- ๐ง Submit pull requests
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature
) - Commit your changes (
git commit -m 'Add some AmazingFeature'
) - Push to the branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Built with Next.js ๐
- UI components from shadcn/ui ๐จ
- Powered by TypeScript ๐ช
- Styled with Tailwind CSS ๐ฏ