flake-update-20260201
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 user,
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 ;
37 username = user;
38 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
39 };
40 modules = [
41 ../home
42 ];
43 };
44
45 newMkHost =
46 {
47 hostname,
48 system ? "x86_64-linux",
49 pkgsInput ? inputs.nixpkgs,
50 }:
51 let
52 globals = import ../globals.nix {
53 inherit (pkgsInput) lib;
54 inherit hostname;
55 };
56 specialArgs = {
57 inherit
58 self
59 inputs
60 outputs
61 stateVersion
62 hostname
63 globals
64 system
65 ;
66 libx = import ./functions.nix { inherit (pkgsInput) lib; };
67 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
68 };
69 in
70 pkgsInput.lib.nixosSystem {
71 inherit specialArgs;
72 inherit system;
73 modules = [
74 self.nixosModules.wireguard-client
75 self.nixosModules.wireguard-server
76 self.nixosModules.govanityurl
77 self.nixosModules.gosmee
78 self.nixosModules.rsync-replica
79 inputs.agenix.nixosModules.default
80 ../systems/new.nix
81 ];
82 };
83
84 # Function for generating host configs
85 mkHost =
86 {
87 hostname,
88 desktop ? null,
89 hardwareType ? "",
90 system ? "x86_64-linux",
91 pkgsInput ? inputs.nixpkgs,
92 homeInput ? inputs.home-manager,
93 }:
94 let
95 globals = import ../globals.nix {
96 inherit (pkgsInput) lib;
97 inherit hostname;
98 };
99 specialArgs = {
100 inherit
101 self
102 inputs
103 outputs
104 stateVersion
105 hostname
106 desktop
107 hardwareType
108 system
109 globals
110 ;
111 libx = import ./functions.nix { inherit (pkgsInput) lib; };
112 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
113 };
114 in
115 pkgsInput.lib.nixosSystem {
116 inherit specialArgs;
117 inherit system;
118 modules = [
119 self.nixosModules.wireguard-client
120 self.nixosModules.wireguard-server
121 self.nixosModules.govanityurl
122 self.nixosModules.gosmee
123 self.nixosModules.rsync-replica
124 inputs.agenix.nixosModules.default
125 inputs.lanzaboote.nixosModules.lanzaboote
126 homeInput.nixosModules.home-manager
127 {
128 home-manager.extraSpecialArgs = specialArgs;
129 home-manager.useGlobalPkgs = true;
130 home-manager.useUserPackages = true;
131 }
132 ../systems
133 ];
134 };
135
136 # Function for generating host configs
137 mkRPIHost =
138 {
139 hostname,
140 desktop ? null,
141 hardwareType ? "",
142 pkgsInput ? inputs.nixpkgs-25_05,
143 homeInput ? inputs.home-manager-25_05,
144 nixos-raspberrypi ? inputs.nixos-raspberrypi,
145 }:
146 let
147 system = "aarch64-linux";
148 globals = import ../globals.nix {
149 inherit (pkgsInput) lib;
150 inherit hostname;
151 };
152 specialArgs = {
153 inherit
154 self
155 inputs
156 outputs
157 stateVersion
158 hostname
159 desktop
160 hardwareType
161 system
162 globals
163 nixos-raspberrypi
164 ;
165 libx = import ./functions.nix { inherit (pkgsInput) lib; };
166 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
167 };
168 in
169 inputs.nixos-raspberrypi.lib.nixosSystemFull {
170 inherit specialArgs;
171 inherit system;
172 modules = [
173 (
174 { ... }:
175 {
176 imports = with inputs.nixos-raspberrypi.nixosModules; [
177 raspberry-pi-5.base
178 raspberry-pi-5.bluetooth
179 raspberry-pi-5.page-size-16k
180 raspberry-pi-5.display-vc4
181 ];
182 }
183 )
184 self.nixosModules.wireguard-client
185 self.nixosModules.wireguard-server
186 self.nixosModules.govanityurl
187 self.nixosModules.gosmee
188 self.nixosModules.rsync-replica
189 inputs.agenix.nixosModules.default
190 inputs.lanzaboote.nixosModules.lanzaboote
191 homeInput.nixosModules.home-manager
192 {
193 home-manager.extraSpecialArgs = specialArgs;
194 home-manager.useGlobalPkgs = true;
195 home-manager.useUserPackages = true;
196 }
197 ../systems
198 ];
199 };
200
201 # Function to create a system manager
202 mkSystemManager =
203 {
204 system ? "x86_64-linux",
205 hostname,
206 desktop ? null,
207 pkgsInput ? inputs.nixpkgs,
208 homeInput ? inputs.home-manager,
209 }:
210 let
211 globals = import ../globals.nix {
212 inherit (pkgsInput) lib;
213 inherit hostname;
214 };
215 extraSpecialArgs = {
216 inherit
217 self
218 inputs
219 outputs
220 stateVersion
221 hostname
222 desktop
223 globals
224 ;
225 libx = import ./functions.nix { inherit (pkgsInput) lib; };
226 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
227 };
228 in
229 inputs.system-manager.lib.makeSystemConfig {
230 inherit extraSpecialArgs;
231 modules = [
232 # self.nixosModules.wireguard-client
233 # inputs.agenix.nixosModules.default
234 homeInput.nixosModules.home-manager
235 {
236 config = {
237 nixpkgs.hostPlatform = system;
238 system-manager.allowAnyDistro = true;
239 };
240 }
241 ../systems/system-manager.nix
242 ];
243 };
244}