RabbitMQ is the most widely deployed open source message broker.
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
Configuring RabbitMQ in Pterodactyl is only possible using the config files. This means:
/home/container/etc/rabbitmq/rabbitmq.conf
/home/container/etc/rabbitmq/enabled_plugins
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
.
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.
Ports required to run the server in a table format.
Port | default |
---|---|
RabbitMQ Broker | 5672 |
Name | Tag |
---|---|
ghcr.io/ptero-eggs/yolks:erlang_22 | ghcr.io/ptero-eggs/yolks:erlang_22 |
ghcr.io/ptero-eggs/yolks:erlang_23 | ghcr.io/ptero-eggs/yolks:erlang_23 |
ghcr.io/ptero-eggs/yolks:erlang_24 | ghcr.io/ptero-eggs/yolks:erlang_24 |
ghcr.io/ptero-eggs/yolks:erlang_25 | ghcr.io/ptero-eggs/yolks:erlang_25 |
ghcr.io/ptero-eggs/yolks:erlang_26 | ghcr.io/ptero-eggs/yolks:erlang_26 |
Name | Description | Environment Variable | Default Value | User Viewable | User Editable |
---|---|---|---|---|---|
RabbitMQ Version | The version of RabbitMQ to install. By default the latest version is being installed. | RABBITMQ_VERSION | latest | Yes | Yes |
#!/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/parkervcp/eggs/master/software/rabbitmq/rabbitmq.conf --output etc/rabbitmq/rabbitmq.conf; fi