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 standaloneFedora ? false,
18 system ? "x86_64-linux",
19 }:
20 let
21 globals = import ../globals.nix {
22 inherit (inputs.nixpkgs) lib;
23 inherit hostname;
24 };
25 in
26 inputs.home-manager.lib.homeManagerConfiguration {
27 pkgs = import inputs.nixpkgs {
28 inherit system;
29 config.allowUnfree = true;
30 overlays = [
31 # Our own flake exports (from overlays and pkgs dir)
32 outputs.overlays.additions
33 outputs.overlays.modifications
34 outputs.overlays.unstable-packages
35
36 # And from other flakes
37 inputs.emacs-overlay.overlay
38 outputs.overlays.emacs-31
39 inputs.chapeau-rouge.overlays.openshift
40 inputs.chick-group.overlays.default
41 inputs.go-org-readwise.overlays.default
42 inputs.radian.overlays.default
43 inputs.llm-agents.overlays.shared-nixpkgs
44
45 # Inline overlays (same as systems/default.nix)
46 (_: _prev: {
47 inherit (inputs.buildkit-tekton.packages.${system}) tkn-local;
48 inherit (inputs.pass-run.packages.${system}) pass-run;
49 })
50 ];
51 };
52 extraSpecialArgs = {
53 inherit
54 self
55 inputs
56 outputs
57 stateVersion
58 hostname
59 desktop
60 standaloneFedora
61 globals
62 username
63 system
64 ;
65 libx = import ./functions.nix { inherit (inputs.nixpkgs) lib; };
66 };
67 modules = [
68 ../home
69 ];
70 };
71
72 # Function for generating host configs
73 mkHost =
74 {
75 hostname,
76 desktop ? null,
77 hardwareType ? "",
78 system ? "x86_64-linux",
79 pkgsInput ? inputs.nixpkgs,
80 homeInput ? inputs.home-manager,
81 agenixInput ? inputs.agenix,
82 }:
83 let
84 globals = import ../globals.nix {
85 inherit (pkgsInput) lib;
86 inherit hostname;
87 };
88 specialArgs = {
89 inherit
90 self
91 inputs
92 outputs
93 stateVersion
94 hostname
95 desktop
96 hardwareType
97 system
98 globals
99 ;
100 libx = import ./functions.nix { inherit (pkgsInput) lib; };
101 monitoring = import ./monitoring.nix { inherit (pkgsInput) lib; };
102 };
103 in
104 pkgsInput.lib.nixosSystem {
105 inherit specialArgs;
106 inherit system;
107 modules = [
108 self.nixosModules.wireguard-client
109 self.nixosModules.wireguard-server
110 self.nixosModules.govanityurl
111 self.nixosModules.gosmee
112 self.nixosModules.rsync-replica
113 self.nixosModules.praetorian
114 agenixInput.nixosModules.default
115 inputs.disko.nixosModules.disko
116 inputs.lanzaboote.nixosModules.lanzaboote
117 homeInput.nixosModules.home-manager
118 {
119 home-manager.extraSpecialArgs = specialArgs;
120 home-manager.useGlobalPkgs = true;
121 home-manager.useUserPackages = true;
122 }
123 ../systems
124 ];
125 };
126
127}