tangled
alpha
login
or
join now
pyrox.dev
/
nixpkgs
lol
0
fork
atom
overview
issues
pulls
pipelines
nixos/rabbitmq: fix module
Jaka Hudoklin
11 years ago
6e7d708b
4631ea8e
+20
-12
1 changed file
expand all
collapse all
unified
split
nixos
modules
services
amqp
rabbitmq.nix
+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
'';
0
0
0
0
0
0
0
0
0
34
};
35
36
dataDir = mkOption {
···
77
users.extraUsers.rabbitmq = {
78
description = "RabbitMQ server user";
79
home = "${cfg.dataDir}";
0
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;
0
97
RABBITMQ_SERVER_START_ARGS = "-rabbit error_logger tty -rabbit sasl_error_logger false";
0
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";
0
106
User = "rabbitmq";
107
Group = "rabbitmq";
108
-
PermissionsStartOnly = true;
109
};
110
0
0
0
0
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 = ''
0
0
0
129
${optionalString (cfg.cookie != "") ''
130
echo -n ${cfg.cookie} > ${cfg.dataDir}/.erlang.cookie
131
chmod 400 ${cfg.dataDir}/.erlang.cookie
0
132
''}
0
0
0
133
'';
0
0
134
};
135
136
};