main
1{
2 self,
3 inputs,
4 outputs,
5 stateVersion,
6 ...
7}:
8{
9 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
10 monitoring = import ./monitoring.nix { inherit (inputs.nixpkgs) lib; };
11 # Function for generating home-manage configs
12 mkHome =
13 {
14 hostname,
15 username,
16 desktop ? null,
17 system ? "x86_64-linux",
18 }:
19 let
20 globals = import ../globals.nix {
21 inherit (inputs.nixpkgs) lib;
22 inherit hostname;
23 };
24 in
25 inputs.home-manager.lib.homeManagerConfiguration {
26 pkgs = inputs.nixpkgs.legacyPackages.${system};
27 extraSpecialArgs = {
28 inherit
29 self
30 inputs
31 outputs
32 stateVersion
33 hostname
34 desktop
35 globals
36 username
37 ;
38 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
39 };
40 modules = [
41 ../home
42 ];
43 };
44
45 # Function for generating host configs
46 mkHost =
47 {
48 hostname,
49 desktop ? null,
50 hardwareType ? "",
51 system ? "x86_64-linux",
52 pkgsInput ? inputs.nixpkgs,
53 homeInput ? inputs.home-manager,
54 agenixInput ? inputs.agenix,
55 }:
56 let
57 globals = import ../globals.nix {
58 inherit (pkgsInput) lib;
59 inherit hostname;
60 };
61 specialArgs = {
62 inherit
63 self
64 inputs
65 outputs
66 stateVersion
67 hostname
68 desktop
69 hardwareType
70 system
71 globals
72 ;
73 libx = import ./functions.nix { inherit (pkgsInput) lib; };
74 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
75 };
76 in
77 pkgsInput.lib.nixosSystem {
78 inherit specialArgs;
79 inherit system;
80 modules = [
81 self.nixosModules.wireguard-client
82 self.nixosModules.wireguard-server
83 self.nixosModules.govanityurl
84 self.nixosModules.gosmee
85 self.nixosModules.rsync-replica
86 agenixInput.nixosModules.default
87 inputs.disko.nixosModules.disko
88 inputs.lanzaboote.nixosModules.lanzaboote
89 homeInput.nixosModules.home-manager
90 {
91 home-manager.extraSpecialArgs = specialArgs;
92 home-manager.useGlobalPkgs = true;
93 home-manager.useUserPackages = true;
94 }
95 ../systems
96 ];
97 };
98
99 # Function to create a system manager
100 mkSystemManager =
101 {
102 system ? "x86_64-linux",
103 hostname,
104 desktop ? null,
105 pkgsInput ? inputs.nixpkgs,
106 homeInput ? inputs.home-manager,
107 }:
108 let
109 globals = import ../globals.nix {
110 inherit (pkgsInput) lib;
111 inherit hostname;
112 };
113 extraSpecialArgs = {
114 inherit
115 self
116 inputs
117 outputs
118 stateVersion
119 hostname
120 desktop
121 globals
122 ;
123 libx = import ./functions.nix { inherit (pkgsInput) lib; };
124 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
125 };
126 in
127 inputs.system-manager.lib.makeSystemConfig {
128 inherit extraSpecialArgs;
129 modules = [
130 # self.nixosModules.wireguard-client
131 # inputs.agenix.nixosModules.default
132 homeInput.nixosModules.home-manager
133 {
134 config = {
135 nixpkgs.hostPlatform = system;
136 system-manager.allowAnyDistro = true;
137 };
138 }
139 ../systems/system-manager.nix
140 ];
141 };
142}