infrastructure/nixos/systemd2mqtt.nix
2024-05-11 12:33:26 -07:00

40 lines
927 B
Nix

{
config,
access,
lib,
inputs,
...
}: let
inherit (lib.modules) mkIf mkDefault;
cfg = config.services.systemd2mqtt;
in {
imports = [ inputs.systemd2mqtt.nixosModules.default ];
services.systemd2mqtt = {
enable = mkDefault true;
user = mkDefault "root";
mqtt = {
url = mkDefault (
if config.services.mosquitto.enable
then "tcp://localhost:1883"
else access.proxyUrlFor { serviceName = "mosquitto"; scheme = "tcp"; }
);
username = mkDefault "systemd";
};
};
systemd.services.systemd2mqtt = mkIf cfg.enable rec {
requires = mkIf config.services.mosquitto.enable ["mosquitto.service"];
after = requires;
serviceConfig.EnvironmentFile = [
config.sops.secrets.systemd2mqtt-env.path
];
};
sops.secrets = {
systemd2mqtt-env = {
sopsFile = mkDefault ./secrets/systemd2mqtt.yaml;
owner = cfg.user;
};
};
}