Add a RabbitMQ egg (#1276)

* Add the RabbitMQ egg
This commit is contained in:
Pascal Zarrad 2021-08-27 05:37:52 +02:00 committed by GitHub
parent c7d02b9e1c
commit 9b0e25181d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 1146 additions and 1 deletions

View File

@ -1,4 +1,4 @@
# Parkers Pterodactyl eggs repo # Parkers Pterodactyl eggs repo
I am working on adding a large collection of public eggs for the Pterodactyl community. I am working on adding a large collection of public eggs for the Pterodactyl community.
@ -246,3 +246,5 @@ If you are reading this it looks like you are looking to add an egg to your serv
* [Grafana](/software/grafana) * [Grafana](/software/grafana)
### haste-server ### haste-server
* [haste-server](/software/haste-server) * [haste-server](/software/haste-server)
### RabbitMQ
* [rabbitmq](/software/rabbitmq)

View File

@ -0,0 +1,40 @@
# RabbitMQ
### From the [RabbitMQ](https://www.rabbitmq.com/) 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/parkervcp/yolks:erlang_24`).
### 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](https://www.rabbitmq.com/definitions.html)
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 |

View File

@ -0,0 +1,43 @@
{
"_comment": "DO NOT EDIT: FILE GENERATED AUTOMATICALLY BY PTERODACTYL PANEL - PTERODACTYL.IO",
"meta": {
"version": "PTDL_v1",
"update_url": null
},
"exported_at": "2021-08-02T15:24:45+02:00",
"name": "RabbitMQ",
"author": "p.zarrad@outlook.de",
"description": "RabbitMQ is a feature rich, multi-protocol messaging broker.",
"features": null,
"images": [
"ghcr.io\/parkervcp\/yolks:erlang_24",
"ghcr.io\/parkervcp\/yolks:erlang_23",
"ghcr.io\/parkervcp\/yolks:erlang_22"
],
"file_denylist": [],
"startup": ".\/sbin\/rabbitmq-server",
"config": {
"files": "{\r\n \"etc\/rabbitmq\/rabbitmq.conf\": {\r\n \"parser\": \"file\",\r\n \"find\": {\r\n \"listeners.tcp.default\": \"listeners.tcp.default = 0.0.0.0:{{server.build.default.port}}\"\r\n }\r\n }\r\n}",
"startup": "{\r\n \"done\": \" completed with\"\r\n}",
"logs": "{}",
"stop": "^C"
},
"scripts": {
"installation": {
"script": "#!\/bin\/sh\r\n# Switch to mounted directory\r\ncd \/mnt\/server\r\n# Update and install xz\r\napk update\r\napk add xz\r\n# Cleanup previous install if available but leave etc untouched\r\nfind . -maxdepth 1 ! -name \"etc\" ! -name . -exec rm -rf {} \\;\r\n# Download and extract RabbitMQ\r\nversion=${RABBITMQ_VERSION}\r\nif [ \"$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\r\ncurl -L https:\/\/github.com\/rabbitmq\/rabbitmq-server\/releases\/download\/v${version}\/rabbitmq-server-generic-unix-${version}.tar.xz --output rabbitmq.tar.xz\r\nxz -v -d rabbitmq.tar.xz && tar -xvf rabbitmq.tar\r\nmv -n rabbitmq_server-*\/* .\/\r\nrm -rf rabbitmq.tar rabbitmq_server-*\/\r\n# If there is no config, download default one\r\nif [ ! -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",
"container": "ghcr.io\/pterodactyl\/installers:alpine",
"entrypoint": "ash"
}
},
"variables": [
{
"name": "RabbitMQ Version",
"description": "The version of RabbitMQ to install. By default the latest version is being installed.",
"env_variable": "RABBITMQ_VERSION",
"default_value": "latest",
"user_viewable": true,
"user_editable": true,
"rules": "required|string|max:20"
}
]
}

File diff suppressed because it is too large Load Diff