-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathflake.nix
47 lines (44 loc) · 1.45 KB
/
flake.nix
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
{
description = "Appservers";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
arion.url = "github:hercules-ci/arion";
arion.inputs.nixpkgs.follows = "nixpkgs";
};
outputs = inputs@{ self, nixpkgs, flake-utils, arion, ... }:
let
makeMyConfigurations = conflist: builtins.foldl' (a: b: a // b) { } (builtins.map
({ host, system, extraModules? [ ], apps? [ ], enableUser? false }: {
${host} =
let
basicModules = [ ./hosts/${host}.nix
./basics.nix
{ networking.hostName = host; }
arion.nixosModules.arion
];
in nixpkgs.lib.nixosSystem rec {
inherit system;
specialArgs = { inherit inputs system host; };
modules = basicModules
++ extraModules
++ builtins.map (name: ./apps/${name}.nix) apps
++ (if enableUser then [ ./user.nix ] else [ ]);
};
}) conflist);
in {
nixosConfigurations = makeMyConfigurations [
{
host = "ctvp";
system = "x86_64-linux";
enableUser = true;
apps = [
"matrix"
"mautrix-bridges"
"reverse"
"headscale"
];
}
];
};
}