Nomploy Nomad Packs

← All packs

rabbitmq v0.1.0

Messaging

RabbitMQ — a battle-tested message broker (AMQP 0-9-1, plus MQTT/STOMP) with the management UI enabled. Deployed as a host-networked Nomad service with a persistent Docker volume and a stable node name so its data survives reschedules.

nomad-pack run rabbitmq --registry nomploy
1 task amqp 5672management 15672 1 volume image rabbitmq:4-management
Variables 11
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run rabbitmq -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "rabbitmq"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The RabbitMQ container image — use a `-management` tag so the web UI is included.
image = "rabbitmq:4-management"

# Host port for AMQP (client connections).
amqp_port = 5672

# Host port for the management web UI / HTTP API.
management_port = 15672

# Admin user created on first boot. (The built-in `guest` user only works from localhost, so remote clients need this.)
default_user = "admin"

# Password for default_user. CHANGE THIS. Only applied on first boot (empty data volume).
default_password = "rabbitmq"

# Docker named volume for /var/lib/rabbitmq (Mnesia DB: queues, exchanges, users, messages). A fresh volume inherits the image's dir ownership (uid 999). Back it up.
data_volume = "rabbitmq_data"

# Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 500
    memory = 512
  }
NameTypeDefaultDescription
job_name string
"rabbitmq"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"rabbitmq:4-management"
The RabbitMQ container image — use a `-management` tag so the web UI is included.
amqp_port number
5672
Host port for AMQP (client connections).
management_port number
15672
Host port for the management web UI / HTTP API.
default_user string
"admin"
Admin user created on first boot. (The built-in `guest` user only works from localhost, so remote clients need this.)
default_password key string
"rabbitmq"
Password for default_user. CHANGE THIS. Only applied on first boot (empty data volume).
data_volume string
"rabbitmq_data"
Docker named volume for /var/lib/rabbitmq (Mnesia DB: queues, exchanges, users, messages). A fresh volume inherits the image's dir ownership (uid 999). Back it up.
constraints list
[]
Placement constraints — pin to one node so the local volume stays put. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 500
    memory = 512
  }
The task resources.
Readme

rabbitmq

RabbitMQ — a mature, widely-used message broker (AMQP 0-9-1, with MQTT/STOMP available), deployed with its management UI enabled. A common dependency for apps that need work queues, pub/sub, or task processing (Celery, Sidekiq, etc.).

Host-networked Nomad service with a persistent Docker volume. The node name is pinned to rabbit@localhost so the Mnesia data directory stays stable across reschedules.

Usage

nomad-pack registry add nomploy github.com/Nomploy/nomad-packs
nomad-pack run rabbitmq --registry nomploy

In nomploy: create a Compose service, type Nomad Pack, pack rabbitmq, custom registry github.com/Nomploy/nomad-packs, then Deploy.

Key variables

Variable Default Notes
image rabbitmq:4-management Use a -management tag for the UI. Pin in production.
amqp_port 5672 Client connections.
management_port 15672 Web UI / HTTP API.
default_user / default_password admin / rabbitmq Admin created on first boot. Change the password.
data_volume rabbitmq_data Mnesia store. Back it up.
constraints [] Pin to a node so the local volume stays put.
resources cpu 500 / mem 512 Raise for heavy throughput.

Notes