Server Build Instructions

This section describes the process for obtaining a copy of the RabbitMQ server source code, as well as instructions for building the server from source.

Obtaining the source

First, obtain the source code from our GitHub repositories:

git clone

Then, use GNU Make to pull down dependencies and build the server:

cd rabbitmq-server

Required Libraries and Tools

In order to build RabbitMQ, you will need a few tools.

RabbitMQ requires a recent version of Python 2 and (an implementation of a JSON reader and writer in Python), for generating AMQP 0-9-1 framing code. is included as a standard json library in the Python core since 2.6 release.

Additionally, you will need

  • the Erlang development and runtime tools
    If you are on a Debian-based system then you need the erlang-nox, erlang-dev and erlang-src packages installed. If you are building and installing Erlang from source then you must ensure that openssl is installed on your system.
  • a recent version of Elixir
  • a recent version of GNU make
  • a recent version of xsltproc, which is part of libxslt
  • a recent version of xmlto
  • zip and unzip

Building the server

Change to the rabbitmq-server directory, and type make.

Other interesting Makefile targets include

The default target. Builds the server.
Builds the client libraries and starts an Erlang shell with the libraries loaded.
Builds the server and starts an instance with an interactive Erlang shell. This will by default put data, including a Mnesia database, in /tmp/rabbitmq-test-instances, but this location can be overridden by setting the Makefile variable TEST_TMPDIR:

make run-broker TEST_TMPDIR=/some/other/location/for/rabbitmq-test-instances

The Erlang node name can also be changed by setting RABBITMQ_NODENAME:

make run-broker RABBITMQ_NODENAME=rmq

See also scripts/rabbitmq-env for other variables that may be useful.
Removes temporary build products.
Removes all build products, including fetched dependencies.
Runs a set of tests.

Building server packages

In practice, building RabbitMQ server from source is of limited use unless an easy to deploy package (e.g. a Debian one) can be produced.

Everything related to packaging the RabbitMQ server is in the rabbitmq-server-release repository. Furthermore, this repository has the list of plugins shipped with the broker. Please refer to the for instructions to create the source archive or any binary packages.

Getting Help and Providing Feedback

If you have questions about the contents of this guide or any other topic related to RabbitMQ, don't hesitate to ask them on the RabbitMQ mailing list.

Help Us Improve the Docs <3

If you'd like to contribute an improvement to the site, its source is available on GitHub. Simply fork the repository and submit a pull request. Thank you!