infrastructure/nixos/openwebrx.nix
2024-05-13 15:31:34 -07:00

49 lines
976 B
Nix

{
config,
lib,
pkgs,
...
}: let
inherit (lib.modules) mkIf mkDefault;
cfg = config.services.openwebrx;
user = "openwebrx";
in {
services.openwebrx = {
enable = mkDefault true;
package = mkDefault pkgs.openwebrxplus;
user = mkDefault user;
};
users = mkIf cfg.enable {
users.${user} = {
uid = 912;
isSystemUser = true;
home = cfg.dataDir;
group = user;
extraGroups = mkIf config.hardware.rtl-sdr.enable [
"plugdev"
];
};
groups.${user} = {
gid = config.users.users.${user}.uid;
};
};
sops.secrets = let
sopsFile = mkDefault ./secrets/openwebrx.yaml;
in
mkIf cfg.enable {
openwebrx-users = {
inherit sopsFile;
owner = cfg.user;
group = cfg.group;
path = "${cfg.dataDir}/users.json";
};
};
networking.firewall = mkIf cfg.enable {
interfaces.lan.allowedTCPPorts = mkIf cfg.enable [
cfg.port
];
};
}