{ lib, config, pkgs, ... }: let cookie = "dontusethisinprod"; setup = pkgs.writeScriptBin "setup-rabbitmq.sh" '' rabbitmqctl --erlang-cookie "${cookie}" add_vhost reddit rabbitmqctl --erlang-cookie "${cookie}" add_user admin_user password rabbitmqctl --erlang-cookie "${cookie}" set_user_tags admin_user administrator rabbitmqctl --erlang-cookie "${cookie}" set_permissions -p / admin_user ".*" ".*" ".*" rabbitmqctl --erlang-cookie "${cookie}" set_permissions -p reddit admin_user ".*" ".*" ".*" rabbitmqctl --erlang-cookie "${cookie}" add_user reddit_user password rabbitmqctl --erlang-cookie "${cookie}" set_permissions -p reddit reddit_user ".*" ".*" ".*" ''; in { services.rabbitmq = { enable = true; listenAddress = "0.0.0.0"; managementPlugin.enable = true; cookie = "dontusethisinprod"; }; networking.firewall.allowedTCPPorts = [ 5672 15672 ]; environment.systemPackages = [ setup ]; }