nixos/rabbitmq: fix module

+20 -12
+20 -12
nixos/modules/services/amqp/rabbitmq.nix
··· 31 <literal>guest</literal> by default, so you should delete 32 this user if you intend to allow external access. 33 ''; 34 }; 35 36 dataDir = mkOption { ··· 77 users.extraUsers.rabbitmq = { 78 description = "RabbitMQ server user"; 79 home = "${cfg.dataDir}"; 80 group = "rabbitmq"; 81 uid = config.ids.uids.rabbitmq; 82 }; ··· 87 description = "RabbitMQ Server"; 88 89 wantedBy = [ "multi-user.target" ]; 90 - after = [ "network-interfaces.target" ]; 91 92 - path = [ pkgs.rabbitmq_server ]; 93 94 environment = { 95 RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; 96 RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; 97 RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; 98 SYS_PREFIX = ""; 99 RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" '' 100 [ ${concatStringsSep "," cfg.plugins} ]. ··· 103 104 serviceConfig = { 105 ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; 106 User = "rabbitmq"; 107 Group = "rabbitmq"; 108 - PermissionsStartOnly = true; 109 }; 110 111 preStart = '' 112 - mkdir -p ${cfg.dataDir} && chmod 0700 ${cfg.dataDir} 113 - if [ "$(id -u)" = 0 ]; then chown rabbitmq:rabbitmq ${cfg.dataDir}; fi 114 - 115 ${optionalString (cfg.cookie != "") '' 116 echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie 117 chmod 400 ${cfg.dataDir}/.erlang.cookie 118 - chown rabbitmq:rabbitmq ${cfg.dataDir}/.erlang.cookie 119 ''} 120 - 121 - mkdir -p /var/log/rabbitmq && chmod 0700 /var/log/rabbitmq 122 - chown rabbitmq:rabbitmq /var/log/rabbitmq 123 ''; 124 - 125 - postStart = mkBefore "until rabbitmqctl status; do sleep 1; done"; 126 }; 127 128 };
··· 31 <literal>guest</literal> by default, so you should delete 32 this user if you intend to allow external access. 33 ''; 34 + type = types.str; 35 + }; 36 + 37 + port = mkOption { 38 + default = 5672; 39 + description = '' 40 + Port on which RabbitMQ will listen for AMQP connections. 41 + ''; 42 + type = types.int; 43 }; 44 45 dataDir = mkOption { ··· 86 users.extraUsers.rabbitmq = { 87 description = "RabbitMQ server user"; 88 home = "${cfg.dataDir}"; 89 + createHome = true; 90 group = "rabbitmq"; 91 uid = config.ids.uids.rabbitmq; 92 }; ··· 97 description = "RabbitMQ Server"; 98 99 wantedBy = [ "multi-user.target" ]; 100 + after = [ "network.target" ]; 101 102 + path = [ pkgs.rabbitmq_server pkgs.procps ]; 103 104 environment = { 105 RABBITMQ_MNESIA_BASE = "${cfg.dataDir}/mnesia"; 106 RABBITMQ_NODE_IP_ADDRESS = cfg.listenAddress; 107 + RABBITMQ_NODE_PORT = toString cfg.port; 108 RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false"; 109 + RABBITMQ_PID_FILE = "${cfg.dataDir}/pid"; 110 SYS_PREFIX = ""; 111 RABBITMQ_ENABLED_PLUGINS_FILE = pkgs.writeText "enabled_plugins" '' 112 [ ${concatStringsSep "," cfg.plugins} ]. ··· 115 116 serviceConfig = { 117 ExecStart = "${pkgs.rabbitmq_server}/sbin/rabbitmq-server"; 118 + ExecStop = "${pkgs.rabbitmq_server}/sbin/rabbitmqctl stop"; 119 User = "rabbitmq"; 120 Group = "rabbitmq"; 121 + WorkingDirectory = cfg.dataDir; 122 }; 123 124 + postStart = '' 125 + rabbitmqctl wait ${cfg.dataDir}/pid 126 + ''; 127 + 128 preStart = '' 129 ${optionalString (cfg.cookie != "") '' 130 echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie 131 chmod 400 ${cfg.dataDir}/.erlang.cookie 132 ''} 133 ''; 134 }; 135 136 };