A modern, feature-rich web interface for managing RabbitMQ clusters with real-time message publishing, browsing, and consumption capabilities.
- Send messages to exchanges or queues
- Support for all RabbitMQ exchange types (direct, topic, fanout, headers)
- Custom message properties and headers
- Multi-vhost support
- View messages without consuming them (safe browsing)
- Message content preview with JSON formatting
- Message properties and metadata display
- Queue statistics and information
- Consume messages from queues
- Configurable message limits
- Auto-acknowledge or manual acknowledgment
- Real-time message display with two-panel interface
- Multiple RabbitMQ cluster connections
- Encrypted credential storage
- Connection testing and validation
- Easy switching between environments
- Automatic vhost discovery
- Per-vhost exchange and queue listing
- Seamless vhost switching
- Complete isolation between virtual hosts
git clone https://github.com/MQGIT/rabbitmq-webtool.git
cd rabbitmq-webtool
chmod +x deploy.sh
./deploy.sh
# 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
- 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
- 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
- Clone and configure:
git clone <your-repo>
cd rabbitmq-web-ui
- Start the application:
docker-compose up -d
- Access the UI: Open http://localhost:3000
- Deploy the application:
kubectl apply -f k8s/
- Access via port-forward:
kubectl port-forward svc/rabbitmq-web-ui 3000:3000
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 | ["*"] |
Add your RabbitMQ connections through the web interface:
- Navigate to the Connections page
- Click "Add Connection"
- 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: "/")
- Node.js 18+
- Python 3.9+
- Docker (optional)
- Backend setup:
cd backend
pip install -r requirements.txt
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000
- Frontend setup:
cd frontend
npm install
npm start
- Access the application:
- Frontend: http://localhost:3000
- Backend API: http://localhost:8000
- API Documentation: http://localhost:8000/docs
The backend provides a comprehensive REST API with automatic OpenAPI documentation:
- Interactive Docs:
/docs
(Swagger UI) - OpenAPI Schema:
/openapi.json
GET /api/connections/
- List all connectionsPOST /api/connections/
- Create new connectionGET /api/discovery/{connection_id}/vhosts
- List vhostsGET /api/discovery/{connection_id}/exchanges
- List exchangesGET /api/discovery/{connection_id}/queues
- List queuesPOST /api/publisher/publish
- Publish messagesPOST /api/consumer/browse
- Browse messagesPOST /api/consumer/consume-messages
- Consume messages
Pre-built Docker images are available:
- Backend:
rmqk8/rabbitmq-web-ui:latest
- Frontend:
rmqk8/rabbitmq-web-ui-frontend:latest
- 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
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
- 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
- Built for the RabbitMQ community
- Inspired by the need for modern RabbitMQ management tools
- Thanks to all contributors and users
Made by MarSem.org