Files
asterisk-nix/module.nix
2026-04-22 18:09:57 +02:00

50 lines
1.0 KiB
Nix

{
config,
pkgs,
lib,
modulesPath,
...
}:
let
asteriskDir = ./asterisk;
asteriskFiles = builtins.readDir asteriskDir;
fileNames = builtins.attrNames asteriskFiles;
entries = builtins.map (name: {
name = name;
path = "${asteriskDir}/${name}";
}) fileNames;
in
{
config =
let
configFarm = pkgs.linkFarm "asterisk-config" entries;
in
{
services.getty.autologinUser = "root";
systemd.services.asterisk = {
wantedBy = [ "multi-user.target" ];
serviceConfig = {
ExecStart = "${pkgs.asterisk}/bin/asterisk -f -C ${configFarm}/asterisk.conf";
Restart = "on-failure";
User = "asterisk";
};
};
users.users.asterisk = {
isSystemUser = true;
group = "asterisk";
};
users.groups.asterisk = { };
environment.etc."asterisk".source = configFarm;
networking.firewall.allowedTCPPorts = [ 5060 ];
networking.firewall.allowedUDPPorts = [
5060
4569
];
};
}