summaryrefslogtreecommitdiff
path: root/doc
diff options
context:
space:
mode:
authorwrobell <wrobell@riseup.net>2026-06-14 17:57:57 +0100
committerSharlatan Hellseher <sharlatanus@gmail.com>2026-06-28 23:38:21 +0100
commitbfb35abf16bb4aa52b143dd1eb31ddef16898b37 (patch)
tree7cf18943cc25ccde62a98cd0c81d1e0e11d62e4a /doc
parent2983d36030ba74037667b28012c76d4bf35e459f (diff)
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>
Diffstat (limited to 'doc')
-rw-r--r--doc/guix.texi30
1 files changed, 21 insertions, 9 deletions
diff --git a/doc/guix.texi b/doc/guix.texi
index c349ffc6d33..7f587d73a9a 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -143,7 +143,7 @@ Copyright @copyright{} 2025 Zacchaeus@*
143Copyright @copyright{} 2025, 2026 Sergio Pastor Pérez@* 143Copyright @copyright{} 2025, 2026 Sergio Pastor Pérez@*
144Copyright @copyright{} 2024 Evgeny Pisemsky@* 144Copyright @copyright{} 2024 Evgeny Pisemsky@*
145Copyright @copyright{} 2025 jgart@* 145Copyright @copyright{} 2025 jgart@*
146Copyright @copyright{} 2025 Artur Wroblewski@* 146Copyright @copyright{} 2025-2026 Artur Wroblewski@*
147Copyright @copyright{} 2025 Edouard Klein@* 147Copyright @copyright{} 2025 Edouard Klein@*
148Copyright @copyright{} 2025 Rodion Goritskov@* 148Copyright @copyright{} 2025 Rodion Goritskov@*
149Copyright @copyright{} 2025 dan@* 149Copyright @copyright{} 2025 dan@*
@@ -37654,24 +37654,24 @@ A simple example configuration is given below.
37654@lisp 37654@lisp
37655(service rabbitmq-service-type 37655(service rabbitmq-service-type
37656 (rabbitmq-configuration 37656 (rabbitmq-configuration
37657 (rabbitmq-configuration 37657 (plugins '("rabbitmq_stream"
37658 (plugins '("rabbitmq_stream" 37658 "rabbitmq_management"
37659 "rabbitmq_management" 37659 "rabbitmq_prometheus"))))
37660 "rabbitmq_prometheus")))))
37661@end lisp 37660@end lisp
37662@end defvar
37663 37661
37664At startup, RabbitMQ broker logs its initialization messages into 37662At startup, RabbitMQ broker logs its initialization messages into
37665@file{/var/log/messages} file. Once running, the logging messages can be 37663@file{/var/log/messages} file. Once running, the logging messages can be
37666found in a logging file of a RabbitMQ node in @file{/var/log/rabbitmq} 37664found in a logging file of a RabbitMQ node in @file{/var/log/rabbitmq}
37667directory. 37665directory.
37668 37666
37669@quotation Note 37667@quotation Warning
37670The default configuration of the RabbitMQ service enables the RabbitMQ 37668The default configuration of the RabbitMQ service enables the RabbitMQ
37671broker to accept connections only on loopback interfaces. However, 37669broker to accept connections only on loopback interfaces. However,
37672enabling certain plugins may open ports on all network interfaces. See 37670enabling certain plugins may open ports on all network interfaces. See
37673also @url{https://www.rabbitmq.com/docs/networking#ports, RabbitMQ Port Access}. 37671also @url{https://www.rabbitmq.com/docs/networking#ports, RabbitMQ Port
37672Access}.
37674@end quotation 37673@end quotation
37674@end defvar
37675 37675
37676@deftp {Data Type} rabbitmq-configuration 37676@deftp {Data Type} rabbitmq-configuration
37677This data type represents the configuration for RabbitMQ. 37677This data type represents the configuration for RabbitMQ.
@@ -37680,10 +37680,23 @@ This data type represents the configuration for RabbitMQ.
37680@item @code{rabbitmq} (default: @code{rabbitmq}) 37680@item @code{rabbitmq} (default: @code{rabbitmq})
37681The RabbitMQ package to use. 37681The RabbitMQ package to use.
37682 37682
37683@item @code{node-name} (default: @code{"rabbit@@localhost"})
37684Node name of a RabbitMQ broker instance. See also
37685@url{https://www.rabbitmq.com/docs/clustering#node-names, RabbitMQ Node
37686Names}.
37687
37683@item @code{config-file} (default: @code{%default-rabbitmq-config-file}) 37688@item @code{config-file} (default: @code{%default-rabbitmq-config-file})
37684Configuration file for the RabbitMQ broker. See also 37689Configuration file for the RabbitMQ broker. See also
37685@url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}. 37690@url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}.
37686 37691
37692@item @code{env-config-file} (default: @code{#f})
37693Environment configuration file for the RabbitMQ broker.
37694
37695Set RabbitMQ environment variables, for example Erlang parameters, node
37696name, or configuration file location, using @code{variable=value} format.
37697Each variable name without @code{RABBITMQ_} prefix. See also
37698@url{https://www.rabbitmq.com/docs/configure, RabbitMQ Configuration}.
37699
37687@item @code{data-directory} (default: @code{"/var/lib/rabbitmq/data"}) 37700@item @code{data-directory} (default: @code{"/var/lib/rabbitmq/data"})
37688Directory with RabbitMQ broker data - a schema database, message stores, 37701Directory with RabbitMQ broker data - a schema database, message stores,
37689cluster member information, and other persistent node state. 37702cluster member information, and other persistent node state.
@@ -37691,7 +37704,6 @@ cluster member information, and other persistent node state.
37691@item @code{plugins} (default: @code{'()}) 37704@item @code{plugins} (default: @code{'()})
37692A list of RabbitMQ plugins to enable. View all available plugins using 37705A list of RabbitMQ plugins to enable. View all available plugins using
37693the @command{rabbitmq-plugins list} command. 37706the @command{rabbitmq-plugins list} command.
37694
37695@end table 37707@end table
37696@end deftp 37708@end deftp
37697 37709