Commit Graph
4 Commits
Author SHA1 Message Date
wrobell 0257734a40 services: rabbitmq: Depend on epmd.
* gnu/services/high-availability.scm (rabbitmq-shepherd-service):
  Change requirement to epmd service.
* doc/gnu.texi (High Availability Services): Document it.
* gnu/tests/high-availability.scm (%rabbitmq-os): Add epmd service.

Merges: https://codeberg.org/guix/guix/pulls/9607
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-07-26 15:25:57 +09:00
wrobell ce8df30021 services: Add epmd-service-type.
Add Erlang Port Mapper Daemon (epmd) service.
Run the service on localhost by default.

* gnu/services/high-availability.scm (<epmd-configuration>): New record.
  (epmd-service-type): New variable.
* gnu/tests/high-availability.scm (run-epmd-test): New procedure.
  (%epmd-os, %tests-epmd): New variables.
* doc/gnu.texi (High Availability Services): Document it.

Merges: https://codeberg.org/guix/guix/pulls/9607
References: https://www.rabbitmq.com/blog/2024/12/18/epmd-public-exposure
References: https://erlef.org/blog/eef/epmd-public-exposure
Signed-off-by: Nguyễn Gia Phong <cnx@loang.net>
2026-07-26 15:23:19 +09:00
wrobell bfb35abf16 services: Update rabbitmq service
Update RabbitMQ default configuration to use localhost interface by
default and avoid listening on public interfaces.

Change the default configuration file to set inter-node communication
listener to localhost network interface (see also
https://www.rabbitmq.com/docs/networking#distribution). This requires
setting RabbitMQ node name to `rabbit@localhost`, so introduce
`node-name` RabbitMQ configuration field with such default value.

Path to the RabbitMQ environment configuration file was hardcoded.
Remove the hardcoding and allow to create such file with env-config-file
RabbitMQ configuration field.

Add new RabbitMQ service tests to check RabbitMQ broker startup and
status after the service is started.

* gnu/services/high-availability.scm (<rabbitmq-configuration>)
  [<node-name>, <env-config-file>]: New fields.
  (rabbitmq-shepherd-service): Use them.
  (%default-rabbitmq-config-file): Update.
* gnu/tests/high-availability.scm (run-rabbitmq-test): Add new tests.
* doc/gnu.texi (High Availability Services): Document new fields and
  provide information about local interfaces.

Merges: guix/guix!9360
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2026-06-28 23:38:21 +01:00
wrobellandChristopher Baines c65da197cf services: Add rabbitmq service.
* gnu/services/high-availability.scm (<rabbitmq-configuration>): New record.
  (rabbitmq-shepherd-service): New procedure.
  (rabbitmq-service-type): New variable.
* gnu/tests/high-availability.scm (run-rabbitmq-test): New procedure.
  (%rabbitmq-os, %tests-rabbitmq): New variables.
* doc/gnu.texi (High Availability Services): Document it.

Change-Id: I53e9f2881b6340e1ed314785e4c5529b81381a3b
Co-authored-by: Christopher Baines <mail@cbaines.net>
Reviewed-by: Ludovic Courtès <ludo@gnu.org>
Signed-off-by: Sharlatan Hellseher <sharlatanus@gmail.com>
2025-07-19 01:47:50 +01:00