flashmq.nix (684B)
1 { 2 config, 3 lib, 4 pkgs, 5 ... 6 }: 7 8 with lib; 9 10 let 11 cfg = config.services.flashmq; 12 in 13 { 14 options.services.flashmq = { 15 enable = mkEnableOption "flashmq"; 16 }; 17 18 config = mkIf cfg.enable { 19 systemd.services.flashmq = { 20 description = "FlashMQ MQTT server"; 21 after = [ "network.target" ]; 22 wantedBy = [ "multi-user.target" ]; 23 serviceConfig = { 24 DynamicUser = true; 25 LogsDirectory = "flashmq"; 26 LimitNOFILE = "infinity"; 27 ExecStart = "${cfg.flashmq}/bin/flashmq -c ${configFile}"; 28 ExecReload = "${pkgs.coreutils}/bin/kill -HUP $MAINPID"; 29 Restart = "on-failure"; 30 RestartSec = "5s"; 31 }; 32 }; 33 }; 34 }