|
17 | 17 | Folder with configuration files. |
18 | 18 | ''; |
19 | 19 | }; |
20 | | - |
21 | | - local-resolve = { |
22 | | - enable = lib.mkOption { |
23 | | - type = lib.types.bool; |
24 | | - default = true; |
25 | | - example = false; |
26 | | - description = '' |
27 | | - Use container hosted resolver instead of sharing host. |
28 | | - ''; |
29 | | - }; |
30 | | - }; |
31 | | - |
32 | | - mDNS = { |
33 | | - resolve = lib.mkOption { |
34 | | - type = lib.types.bool; |
35 | | - default = true; |
36 | | - example = false; |
37 | | - description = '' |
38 | | - Resolve mDNS (using avahi). |
39 | | - ''; |
40 | | - }; |
41 | | - |
42 | | - publish = lib.mkOption { |
43 | | - type = lib.types.bool; |
44 | | - default = true; |
45 | | - example = false; |
46 | | - description = '' |
47 | | - Publish mDNS (using avahi). |
48 | | - ''; |
49 | | - }; |
50 | | - }; |
51 | 20 | }; |
52 | 21 | }; |
53 | 22 |
|
|
57 | 26 | { isNspawnContainer = true; } |
58 | 27 | else |
59 | 28 | { isContainer = true; }; |
| 29 | + |
60 | 30 | nixpkgs.hostPlatform = |
61 | 31 | if (builtins.pathExists "${cfg.xnode-config}/host-platform") then |
62 | 32 | builtins.readFile "${cfg.xnode-config}/host-platform" |
63 | 33 | else |
64 | 34 | "x86_64-linux"; |
| 35 | + |
65 | 36 | system.stateVersion = |
66 | 37 | if (builtins.pathExists "${cfg.xnode-config}/state-version") then |
67 | 38 | builtins.readFile "${cfg.xnode-config}/state-version" |
68 | 39 | else |
69 | 40 | config.system.nixos.release; |
| 41 | + |
70 | 42 | systemd.services.pin-state-version = { |
71 | 43 | wantedBy = [ "multi-user.target" ]; |
72 | 44 | description = "Pin state version to first booted NixOS version."; |
|
79 | 51 | fi |
80 | 52 | ''; |
81 | 53 | }; |
| 54 | + |
82 | 55 | networking.hostName = lib.mkIf (builtins.pathExists "${cfg.xnode-config}/hostname") ( |
83 | 56 | builtins.readFile "${cfg.xnode-config}/hostname" |
84 | 57 | ); |
|
105 | 78 | }; |
106 | 79 | }; |
107 | 80 |
|
108 | | - networking.useHostResolvConf = lib.mkIf cfg.local-resolve.enable false; |
109 | | - services.resolved = lib.mkIf cfg.local-resolve.enable { |
110 | | - enable = true; |
111 | | - llmnr = "false"; |
112 | | - extraConfig = '' |
113 | | - MulticastDNS=no |
114 | | - ''; # Avahi handles mDNS |
115 | | - }; |
116 | | - systemd.services.systemd-resolved.serviceConfig.ProtectHome = lib.mkIf cfg.local-resolve.enable ( |
117 | | - lib.mkForce false |
118 | | - ); |
119 | | - |
120 | | - services.avahi = { |
121 | | - enable = lib.mkIf (cfg.mDNS.resolve || cfg.mDNS.publish) true; |
122 | | - nssmdns4 = lib.mkIf cfg.mDNS.resolve true; |
123 | | - publish = lib.mkIf cfg.mDNS.publish { |
124 | | - enable = true; |
125 | | - addresses = true; |
126 | | - }; |
127 | | - openFirewall = lib.mkIf cfg.mDNS.publish true; |
128 | | - }; |
| 81 | + networking.useHostResolvConf = false; |
| 82 | + services.resolved.enable = true; |
129 | 83 | }; |
130 | 84 | } |
0 commit comments