diff options
author | Jaka Hudoklin <jakahudoklin@gmail.com> | 2015-01-26 02:07:05 +0100 |
---|---|---|
committer | Jaka Hudoklin <jakahudoklin@gmail.com> | 2015-01-26 02:09:04 +0100 |
commit | 6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86 (patch) | |
tree | 5e3265233196f02a6a73aeb16c478035d390411d /nixos/modules/services/amqp | |
parent | 4631ea8ed90c985063a94ff3f19b548e3e474c1d (diff) | |
download | nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar.gz nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar.bz2 nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar.lz nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar.xz nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.tar.zst nixlib-6e7d708bcc25c9e9fafd79e08a4b2fbcf94cda86.zip |
nixos/rabbitmq: fix module
Diffstat (limited to 'nixos/modules/services/amqp')
-rw-r--r-- | nixos/modules/services/amqp/rabbitmq.nix | 32 |
1 files changed, 20 insertions, 12 deletions
diff --git a/nixos/modules/services/amqp/rabbitmq.nix b/nixos/modules/services/amqp/rabbitmq.nix index 77487ec1ab91..780d5daded92 100644 --- a/nixos/modules/services/amqp/rabbitmq.nix +++ b/nixos/modules/services/amqp/rabbitmq.nix @@ -31,6 +31,15 @@ in { <literal>guest</literal> by default, so you should delete this user if you intend to allow external access. ''; + type = types.str; + }; + + port = mkOption { + default = 5672; + description = '' + Port on which RabbitMQ will listen for AMQP connections. + ''; + type = types.int; }; dataDir = mkOption { @@ -77,6 +86,7 @@ in { users.extraUsers.rabbitmq = { description = "RabbitMQ server user"; home = "${cfg.dataDir}"; + createHome = true; group = "rabbitmq"; uid = config.ids.uids.rabbitmq; }; @@ -87,14 +97,16 @@ in { description = "RabbitMQ Server"; wantedBy = [ "multi-user.target" ]; - after = [ "network-interfaces.target" ]; + after = [ "network.target" ]; - path = [ pkgs.rabbitmq_server ]; + path = [ pkgs.rabbitmq_server pkgs.procps ]; environment = { RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; + RABBITMQ_NODE_PORT = toString cfg.port; RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; + RABBITMQ_PID_FILE = "${cfg.dataDir}/pid"; SYS_PREFIX = ""; RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" '' [ ${concatStringsSep "," cfg.plugins} ]. @@ -103,26 +115,22 @@ in { serviceConfig = { ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; + ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop"; User = "rabbitmq"; Group = "rabbitmq"; - PermissionsStartOnly = true; + WorkingDirectory = cfg.dataDir; }; + postStart = '' + rabbitmqctl wait ${cfg.dataDir}/pid + ''; + preStart = '' - mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir} - if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi - ${optionalString (cfg.cookie != "") '' echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie chmod 400 ${cfg.dataDir}/.erlang.cookie - chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie ''} - - mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq - chown rabbitmq:rabbitmq /var/log/rabbitmq ''; - - postStart = mkBefore "until rabbitmqctl status; do sleep 1; done"; }; }; |