From be53b62967be34c3514a9024abe14d0933559751 Mon Sep 17 00:00:00 2001 From: Aly Sewelam Date: Wed, 22 Apr 2026 19:04:29 +0200 Subject: [PATCH] it builds now! --- flake.lock | 17 ---------------- flake.nix | 58 +++++++++++++--------------------------------------- module.nix | 60 ++++++++++++++++++++++++------------------------------ 3 files changed, 41 insertions(+), 94 deletions(-) diff --git a/flake.lock b/flake.lock index 8dfa8fa..c3b7a01 100644 --- a/flake.lock +++ b/flake.lock @@ -1,21 +1,5 @@ { "nodes": { - "flake-utils": { - "locked": { - "lastModified": 1652776076, - "narHash": "sha256-gzTw/v1vj4dOVbpBSJX4J0DwUR6LIyXo7/SuuTJp1kM=", - "owner": "numtide", - "repo": "flake-utils", - "rev": "04c1b180862888302ddfb2e3ad9eaa63afc60cf8", - "type": "github" - }, - "original": { - "owner": "numtide", - "ref": "v1.0.0", - "repo": "flake-utils", - "type": "github" - } - }, "nixpkgs": { "locked": { "lastModified": 1764521362, @@ -34,7 +18,6 @@ }, "root": { "inputs": { - "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } } diff --git a/flake.nix b/flake.nix index 191600f..ec07434 100644 --- a/flake.nix +++ b/flake.nix @@ -1,49 +1,19 @@ -{ inputs = { - flake-utils.url = "github:numtide/flake-utils/v1.0.0"; - +{ + inputs = { nixpkgs.url = "github:NixOS/nixpkgs/25.11"; }; - outputs = { flake-utils, nixpkgs, ... }: - flake-utils.lib.eachDefaultSystem (system: - let - pkgs = nixpkgs.legacyPackages."${system}"; + outputs = + { self, nixpkgs }: + { + packages.x86_64-linux.default = + (nixpkgs.lib.nixosSystem { + system = "x86_64-linux"; - base = { lib, modulesPath, ... }: { - imports = [ "${modulesPath}/virtualisation/qemu-vm.nix" ]; - - # https://github.com/utmapp/UTM/issues/2353 - networking.nameservers = lib.mkIf pkgs.stdenv.isDarwin [ "8.8.8.8" ]; - - virtualisation = { - graphics = false; - - host = { inherit pkgs; }; - }; - }; - - machine = nixpkgs.lib.nixosSystem { - system = builtins.replaceStrings [ "darwin" ] [ "linux" ] system; - - modules = [ base ./module.nix ]; - }; - - program = pkgs.writeShellScript "run-vm.sh" '' - export NIX_DISK_IMAGE=$(mktemp -u -t nixos.qcow2) - - trap "rm -f $NIX_DISK_IMAGE" EXIT - - ${machine.config.system.build.vm}/bin/run-nixos-vm - ''; - - in - { packages = { inherit machine; }; - - apps.default = { - type = "app"; - - program = "${program}"; - }; - } - ); + modules = [ + "${nixpkgs}/nixos/modules/virtualisation/qemu-vm.nix" + ./module.nix + ]; + }).config.system.build.vm; + }; } diff --git a/module.nix b/module.nix index c574155..4ddc6bc 100644 --- a/module.nix +++ b/module.nix @@ -1,49 +1,43 @@ { config, - pkgs, lib, + pkgs, modulesPath, ... }: let asteriskDir = ./asterisk; - asteriskFiles = builtins.readDir asteriskDir; - fileNames = builtins.attrNames asteriskFiles; - entries = builtins.map (name: { - name = name; - path = "${asteriskDir}/${name}"; - }) fileNames; + asteriskFilesRaw = builtins.readDir asteriskDir; + asteriskFileNames = builtins.attrNames asteriskFilesRaw; + filteredFileNames = builtins.filter (n: n != "asterisk.conf") asteriskFileNames; + asteriskFiles = builtins.listToAttrs ( + builtins.map (n: { + name = n; + value = builtins.readFile (asteriskDir + "/${n}"); + }) filteredFileNames + ); in { - config = - let - configFarm = pkgs.linkFarm "asterisk-config" entries; - in - { - services.getty.autologinUser = "root"; + imports = [ + "${modulesPath}/services/networking/asterisk.nix" + ]; - systemd.services.asterisk = { - wantedBy = [ "multi-user.target" ]; - serviceConfig = { - ExecStart = "${pkgs.asterisk}/bin/asterisk -f -C ${configFarm}/asterisk.conf"; - Restart = "on-failure"; - User = "asterisk"; - }; - }; + config = { + system.stateVersion = "25.11"; - users.users.asterisk = { - isSystemUser = true; - group = "asterisk"; - }; - users.groups.asterisk = { }; + services.asterisk.enable = true; - environment.etc."asterisk".source = configFarm; + services.asterisk.extraConfig = builtins.readFile (asteriskDir + "/asterisk.conf"); - networking.firewall.allowedTCPPorts = [ 5060 ]; - networking.firewall.allowedUDPPorts = [ - 5060 - 4569 - ]; - }; + services.asterisk.confFiles = asteriskFiles; + + services.getty.autologinUser = "root"; + + networking.firewall.allowedTCPPorts = [ 5060 ]; + networking.firewall.allowedUDPPorts = [ + 5060 + 4569 + ]; + }; }