Skip to content

Instantly share code, notes, and snippets.

@arsalanses
Created July 7, 2025 09:35
Show Gist options
  • Select an option

  • Save arsalanses/3f0c2797da2ae68c3ba49d6e578f0051 to your computer and use it in GitHub Desktop.

Select an option

Save arsalanses/3f0c2797da2ae68c3ba49d6e578f0051 to your computer and use it in GitHub Desktop.

Create vhost

rabbitmqctl add_vhost app_vhost

Create application user

rabbitmqctl add_user app_user secret1234
rabbitmqctl set_permissions -p app_vhost app_user ".*" ".*" ".*"

Create monitoring user (if needed)

rabbitmqctl set_user_tags app_user monitoring

Verify your setup

rabbitmqctl list_vhosts
rabbitmqctl list_users
rabbitmqctl list_user_permissions app_user
rabbitmqctl list_permissions -p app_vhost
services:
rabbitmq:
image: rabbitmq:4.1-management
container_name: rabbitmq
hostname: rabbitmq
restart: unless-stopped
environment:
RABBITMQ_DEFAULT_USER: admin
RABBITMQ_DEFAULT_PASS: secret1234
RABBITMQ_DEFAULT_VHOST: /
volumes:
- rabbitmq_data:/var/lib/rabbitmq
- rabbitmq_logs:/var/log/rabbitmq
ports:
# AMQP protocol
- "127.0.0.1:5672:5672"
# Management UI
- "127.0.0.1:15672:15672"
# Prometheus metrics
- "127.0.0.1:15692:15692"
healthcheck:
test: ["CMD", "rabbitmq-diagnostics", "status"]
interval: 30s
timeout: 10s
retries: 5
networks:
- modules
- web
labels:
- "traefik.enable=true"
- "traefik.docker.network=web"
- "traefik.http.routers.rmq.rule=Host(`rmq.example.com`)"
- "traefik.http.routers.rmq.entrypoints=http"
# - "traefik.http.routers.rmq.middlewares=traefik-auth"
- "traefik.http.services.rmq.loadbalancer.server.port=15672"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment