Skip to content

MQGIT/rabbitmq-webtool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

14 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

RabbitMQ Web UI

A modern, feature-rich web interface for managing RabbitMQ clusters with real-time message publishing, browsing, and consumption capabilities.

RabbitMQ Web UI Docker Kubernetes React FastAPI

πŸš€ Features

πŸ“€ Publisher

  • Send messages to exchanges or queues
  • Support for all RabbitMQ exchange types (direct, topic, fanout, headers)
  • Custom message properties and headers
  • Multi-vhost support

πŸ“‹ Browser

  • View messages without consuming them (safe browsing)
  • Message content preview with JSON formatting
  • Message properties and metadata display
  • Queue statistics and information

πŸ“₯ Consumer

  • Consume messages from queues
  • Configurable message limits
  • Auto-acknowledge or manual acknowledgment
  • Real-time message display with two-panel interface

πŸ”— Connection Management

  • Multiple RabbitMQ cluster connections
  • Encrypted credential storage
  • Connection testing and validation
  • Easy switching between environments

🏠 Multi-Vhost Support

  • Automatic vhost discovery
  • Per-vhost exchange and queue listing
  • Seamless vhost switching
  • Complete isolation between virtual hosts

πŸš€ Quick Deployment

One-Command Deployment

git clone https://github.com/MQGIT/rabbitmq-webtool.git
cd rabbitmq-webtool
chmod +x deploy.sh
./deploy.sh

Command Line Options

# Deploy with specific settings
./deploy.sh --namespace my-rmq --hostname rmqtool.mydomain.com --auto-confirm

# Use custom images
./deploy.sh --frontend-image my-registry/frontend:latest --hostname rmqtool.mydomain.com

Prerequisites

  • Kubernetes cluster (v1.19+)
  • kubectl configured
  • Ingress controller (nginx recommended)
  • Cert-manager for SSL certificates

πŸ“– Detailed deployment guide: DEPLOYMENT_GUIDE.md ⚑ Quick start guide: QUICK_START.md

πŸ—οΈ Architecture

  • Frontend: React.js with modern UI components
  • Backend: FastAPI with async support
  • Database: SQLite for connection storage
  • Deployment: Docker containers with Kubernetes support
  • Security: Encrypted credential storage, HTTPS ready

πŸ“¦ Quick Start

Docker Compose (Recommended)

  1. Clone and configure:
git clone <your-repo>
cd rabbitmq-web-ui
  1. Start the application:
docker-compose up -d
  1. Access the UI: Open http://localhost:3000

Kubernetes Deployment

  1. Deploy the application:
kubectl apply -f k8s/
  1. Access via port-forward:
kubectl port-forward svc/rabbitmq-web-ui 3000:3000

βš™οΈ Configuration

Environment Variables

Variable Description Default
DATABASE_URL SQLite database path sqlite:///./rabbitmq_web_ui.db
ENCRYPTION_KEY Key for encrypting credentials auto-generated
CORS_ORIGINS Allowed CORS origins ["*"]

RabbitMQ Connection

Add your RabbitMQ connections through the web interface:

  1. Navigate to the Connections page
  2. Click "Add Connection"
  3. Enter your RabbitMQ cluster details:
    • Name: Friendly name for the connection
    • Host: RabbitMQ server hostname
    • Port: AMQP port (default: 5672)
    • Management Port: Management API port (default: 15672)
    • Username/Password: RabbitMQ credentials
    • Virtual Host: Default vhost (default: "/")

πŸ”§ Development

Prerequisites

  • Node.js 18+
  • Python 3.9+
  • Docker (optional)

Local Development

  1. Backend setup:
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
  1. Frontend setup:
cd frontend
npm install
npm start
  1. Access the application:

πŸ“š API Documentation

The backend provides a comprehensive REST API with automatic OpenAPI documentation:

  • Interactive Docs: /docs (Swagger UI)
  • OpenAPI Schema: /openapi.json

Key Endpoints

  • GET /api/connections/ - List all connections
  • POST /api/connections/ - Create new connection
  • GET /api/discovery/{connection_id}/vhosts - List vhosts
  • GET /api/discovery/{connection_id}/exchanges - List exchanges
  • GET /api/discovery/{connection_id}/queues - List queues
  • POST /api/publisher/publish - Publish messages
  • POST /api/consumer/browse - Browse messages
  • POST /api/consumer/consume-messages - Consume messages

🐳 Docker Images

Pre-built Docker images are available:

  • Backend: rmqk8/rabbitmq-web-ui:latest
  • Frontend: rmqk8/rabbitmq-web-ui-frontend:latest

πŸ”’ Security

  • Credential Encryption: All RabbitMQ credentials are encrypted at rest
  • HTTPS Support: Ready for TLS termination
  • CORS Configuration: Configurable cross-origin policies
  • Input Validation: Comprehensive request validation

🀝 Contributing

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

πŸ“„ License

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

πŸ†˜ Support

  • Issues: Report bugs and feature requests via GitHub Issues
  • Documentation: Check the /docs folder for detailed guides
  • Community: Join our discussions for help and feedback

πŸ™ Acknowledgments

  • Built for the RabbitMQ community
  • Inspired by the need for modern RabbitMQ management tools
  • Thanks to all contributors and users

Made by MarSem.org

About

RabbitMQ Web UI tool to produce and consume messages as well as browse.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published