feat: Unify lxc and systems config
This commit is contained in:
committed by
Hunter Halloran
parent
01d1a36650
commit
bcacfd2ca1
@@ -37,4 +37,8 @@
|
|||||||
system.stateVersion = "25.11";
|
system.stateVersion = "25.11";
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
{
|
||||||
|
modules.sw.enable = true;
|
||||||
|
modules.sw.type = "headless";
|
||||||
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ in
|
|||||||
type = types.enum [
|
type = types.enum [
|
||||||
"desktop"
|
"desktop"
|
||||||
"kiosk"
|
"kiosk"
|
||||||
|
"headless"
|
||||||
];
|
];
|
||||||
default = "desktop";
|
default = "desktop";
|
||||||
description = "Type of system configuration: 'desktop' for normal OS, 'kiosk' for tablet/kiosk mode.";
|
description = "Type of system configuration: 'desktop' for normal OS, 'kiosk' for tablet/kiosk mode.";
|
||||||
@@ -110,5 +111,15 @@ in
|
|||||||
;
|
;
|
||||||
}
|
}
|
||||||
))
|
))
|
||||||
|
(mkIf (cfg.type == "headless") (
|
||||||
|
import ./headless {
|
||||||
|
inherit
|
||||||
|
config
|
||||||
|
lib
|
||||||
|
pkgs
|
||||||
|
inputs
|
||||||
|
;
|
||||||
|
}
|
||||||
|
))
|
||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|||||||
26
sw/headless/default.nix
Normal file
26
sw/headless/default.nix
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
lib.mkMerge [
|
||||||
|
(import ./programs.nix {
|
||||||
|
inherit
|
||||||
|
config
|
||||||
|
lib
|
||||||
|
pkgs
|
||||||
|
inputs
|
||||||
|
;
|
||||||
|
})
|
||||||
|
(import ./services.nix {
|
||||||
|
inherit
|
||||||
|
config
|
||||||
|
lib
|
||||||
|
pkgs
|
||||||
|
inputs
|
||||||
|
;
|
||||||
|
})
|
||||||
|
]
|
||||||
36
sw/headless/programs.nix
Normal file
36
sw/headless/programs.nix
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
inputs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
with lib;
|
||||||
|
|
||||||
|
let
|
||||||
|
cfg = config.modules.sw;
|
||||||
|
basePackages = with pkgs; [
|
||||||
|
uv
|
||||||
|
perl
|
||||||
|
openssh
|
||||||
|
ncurses
|
||||||
|
tmux
|
||||||
|
htop
|
||||||
|
binutils
|
||||||
|
man
|
||||||
|
git
|
||||||
|
oh-my-posh
|
||||||
|
zsh
|
||||||
|
lm_sensors
|
||||||
|
];
|
||||||
|
in
|
||||||
|
{
|
||||||
|
environment.systemPackages = subtractLists cfg.excludePackages (basePackages ++ cfg.extraPackages);
|
||||||
|
|
||||||
|
programs.mtr.enable = true;
|
||||||
|
programs.gnupg.agent = {
|
||||||
|
enable = true;
|
||||||
|
enableSSHSupport = true;
|
||||||
|
};
|
||||||
|
}
|
||||||
35
sw/headless/services.nix
Normal file
35
sw/headless/services.nix
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
{
|
||||||
|
config,
|
||||||
|
lib,
|
||||||
|
pkgs,
|
||||||
|
...
|
||||||
|
}:
|
||||||
|
|
||||||
|
{
|
||||||
|
services.openssh = {
|
||||||
|
enable = true;
|
||||||
|
settings = {
|
||||||
|
AllowUsers = null;
|
||||||
|
PasswordAuthentication = true;
|
||||||
|
PermitRootLogin = "yes";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
|
||||||
|
networking = {
|
||||||
|
dhcpcd.enable = false;
|
||||||
|
useDHCP = false;
|
||||||
|
useHostResolvConf = false;
|
||||||
|
};
|
||||||
|
|
||||||
|
systemd.network = {
|
||||||
|
enable = true;
|
||||||
|
networks."50-eth0" = {
|
||||||
|
matchConfig.Name = "eth0";
|
||||||
|
networkConfig = {
|
||||||
|
DHCP = "ipv4";
|
||||||
|
IPv6AcceptRA = true;
|
||||||
|
};
|
||||||
|
linkConfig.RequiredForOnline = "routable";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user