Skip to content

RabbitMQ

RabbitMQ is a feature rich, multi-protocol messaging broker.

egg-rabbitmq.json

updated

Ports

Add an allocation on the node for each port.

  • RabbitMQ Broker 5672

Install

Installer image
ghcr.io/ptero-eggs/installers:alpine
Install script
17 lines

Images

New servers use the first image. Users can change it on the Startup page.

  • Erlang 22 default ghcr.io/ptero-eggs/yolks:erlang_22
  • Erlang 23 ghcr.io/ptero-eggs/yolks:erlang_23
  • Erlang 24 ghcr.io/ptero-eggs/yolks:erlang_24
  • Erlang 25 ghcr.io/ptero-eggs/yolks:erlang_25
  • Erlang 26 ghcr.io/ptero-eggs/yolks:erlang_26

Startup

The Panel runs this command to start the server. It replaces each variable in the command with the value of that variable.

1 variable

Startup command

./sbin/rabbitmq-server
  • The version of RabbitMQ to install. By default the latest version is being installed.

    RABBITMQ_VERSIONUsers can edit

    required|string|max:20

Wings

Stop command
^C (SIGINT)
Running when the console shows
completed with

Files Wings edits

Wings sets these values in these files before each start.

etc/rabbitmq/rabbitmq.conf file

listeners.tcp.default
listeners.tcp.default = 0.0.0.0:{{server.build.default.port}}

Readme

RabbitMQ

From the RabbitMQ website

RabbitMQ is the most widely deployed open source message broker.

Installation

Follow the common egg installation guide to install the egg on your Pterodactyl instance. When setting up a server, the latest RabbitMQ version will be used by default.

With pretty new and old versions of RabbitMQ, you might have to adjust the used Erlang version. This can be archived by adjusting the version number of the used image (e. g. ghcr.io/pterodactyl/yolks:erlang_22 instead of ghcr.io/ptero-eggs/yolks:erlang_24).

The latest version as of now requires you to use atleast ghcr.io/pterodactyl/yolks:erlang_25

Configuration

Configuring RabbitMQ in Pterodactyl is only possible using the config files. This means:

  • Configure the server itself as normal using /home/container/etc/rabbitmq/rabbitmq.conf
  • Enable plugins using the plugin file located at /home/container/etc/rabbitmq/enabled_plugins
  • Configure users and vhosts through a definitions.json

You can set the path to the used definitions.json using the load_definitions option in your config. Note that RabbitMQ versions prior to 3.8.6 will require a properly configured management plugin to do so! The easiest way to get a working definitions.json is to setup a local instance with the management plugin. You can configure your instance there and load the definitions as stated by uploading them.

By default, only listeners.tcp.default is configured to match your primary allocation. If you want to expose some other port (e. g. the web management interface) you have to manually configure the port in your rabbitmq.conf.

Update support

The egg should keep the etc folder when reinstalling, to prevent destroying the configuration by accident. Therefore a reinstallation with "latest" as the selected version can be used to update RabbitMQ.

If you want to reset the server completly, remove the etc directory manually before reinstalling.

Server Ports

Ports required to run the server in a table format.

Port default
RabbitMQ Broker 5672

Changes

  1. RabbitMQ: Update config URL

    · Red Banana · 2103381

  2. fix docker images path

    · Daniel Barton · 7d2b714

  3. Replace docker images

    · Daniel Barton · 3759ed6

  4. Add software

    · rowansc1 · 9b56a00

All changes on GitHub

Problem with this egg?

Open an issue on GitHub. Include your Panel and Wings versions.

Install script 17 lines ash in ghcr.io/ptero-eggs/installers:alpine Show
#!/bin/sh
# Switch to mounted directory
cd /mnt/server
# Update and install xz
apk update
apk add xz
# Cleanup previous install if available but leave etc untouched
find . -maxdepth 1 ! -name "etc" ! -name . -exec rm -rf {} \;
# Download and extract RabbitMQ
version=${RABBITMQ_VERSION}
if [ "$version" = "latest" ]; then version=$(curl --silent "https://api.github.com/repos/rabbitmq/rabbitmq-server/releases/latest" | grep '"tag_name":' | sed -E 's/.*"([^"]+)".*/\1/' | cut -c2-); fi
curl -L https://github.com/rabbitmq/rabbitmq-server/releases/download/v${version}/rabbitmq-server-generic-unix-${version}.tar.xz --output rabbitmq.tar.xz
xz -v -d rabbitmq.tar.xz && tar -xvf rabbitmq.tar
mv -n rabbitmq_server-*/* ./
rm -rf rabbitmq.tar rabbitmq_server-*/
# If there is no config, download default one
if [ ! -f "etc/rabbitmq/rabbitmq.conf" ]; then mkdir -p etc/rabbitmq/ && curl -L https://raw.githubusercontent.com/Ptero-Eggs/application-eggs/main/rabbitmq/rabbitmq.conf --output etc/rabbitmq/rabbitmq.conf; fi