summaryrefslogtreecommitdiff
path: root/modules/services/mosquitto.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/services/mosquitto.nix')
-rw-r--r--modules/services/mosquitto.nix90
1 files changed, 0 insertions, 90 deletions
diff --git a/modules/services/mosquitto.nix b/modules/services/mosquitto.nix
deleted file mode 100644
index fecf8a4..0000000
--- a/modules/services/mosquitto.nix
+++ /dev/null
@@ -1,90 +0,0 @@
-{ config, lib, pkgs, ... }:
-with lib;
-
-let
-
- cfg = config.eth.services.mosquitto;
-
- systemdDirectoryName = "mosquitto";
- stateDirectory = "/var/lib/${systemdDirectoryName}";
- runtimeDirectory = "/run/${systemdDirectoryName}";
-
- mosquittoConf = pkgs.writeText "mosquitto.conf" ''
- ${optionalString cfg.mqtt.enable ''
- listener ${toString cfg.mqtt.port} ${optionalString (cfg.mqtt.host != "") cfg.mqtt.host}
- ''}
-
- ${optionalString cfg.websockets.enable ''
- listener ${toString cfg.websockets.port} ${optionalString (cfg.websockets.host != "") cfg.websockets.host}
- protocol websockets
- ''}
-
- ${optionalString cfg.persistence ''
- persistence true
- persistence_location ${stateDirectory}/
- ''}
- '';
-
-in {
-
- options.eth.services.mosquitto = {
-
- enable = mkEnableOption "Whether to enable mosquitto.";
-
- persistence = mkOption {
- type = types.bool;
- default = true;
- };
-
- mqtt = {
- enable = mkEnableOption "Whether to listen on unencrypted MQTT.";
- host = mkOption {
- type = types.str;
- default = "";
- example = "10.11.12.14";
- };
- port = mkOption {
- type = types.int;
- default = 1883;
- };
- };
-
- websockets = {
- enable = mkEnableOption "Whether to listen on unencrypted Websockets.";
- host = mkOption {
- type = types.str;
- default = "";
- example = "10.11.12.14";
- };
- port = mkOption {
- type = types.int;
- default = 1884;
- };
- };
-
- };
-
- config = mkIf cfg.enable {
-
- systemd.services.mosquitto = {
- enable = true;
- description = "Mosquitto MQTT broker";
- wants = [ "network.target" ];
- after = [ "network.target" ];
- wantedBy = [ "multi-user.target" ];
- serviceConfig = {
- DynamicUser = true;
- RuntimeDirectory = systemdDirectoryName;
- StateDirectory = systemdDirectoryName;
- ExecStart = "${pkgs.mosquitto}/bin/mosquitto -c ${mosquittoConf}";
- NoNewPrivileges = true;
- ProtectHome = true;
- ProtectKernelTunables = true;
- ProtectControlGroups = true;
- ProtectKernelModules = true;
- RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX";
- RestrictNamespaces = true;
- };
- };
- };
-}