refactor: centralize host and user metadata
This commit is contained in:
@@ -1,45 +1,12 @@
|
||||
{
|
||||
inputs,
|
||||
config,
|
||||
...
|
||||
}:
|
||||
{ config, ... }:
|
||||
let
|
||||
nixosModules = config.flake.modules.nixos;
|
||||
metaLib = config.meta.lib;
|
||||
in
|
||||
{
|
||||
flake.modules.nixos.orion =
|
||||
flake.modules.nixos."orion-admin" =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
_module.args.hostType = "server";
|
||||
|
||||
imports = [
|
||||
inputs.home-manager.nixosModules.home-manager
|
||||
nixosModules.sopsHost
|
||||
nixosModules.caddy
|
||||
nixosModules.openssh
|
||||
nixosModules.vaultwarden
|
||||
nixosModules.radicale
|
||||
nixosModules.actual
|
||||
nixosModules.gitea
|
||||
nixosModules.kiri
|
||||
./_hardware.nix
|
||||
./_disk.nix
|
||||
];
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
home-manager = {
|
||||
useGlobalPkgs = true;
|
||||
backupFileExtension = "bak";
|
||||
extraSpecialArgs = { inherit inputs; };
|
||||
};
|
||||
|
||||
networking.hostName = "orion";
|
||||
|
||||
security.sudo.extraConfig = ''
|
||||
Defaults env_keep+=SSH_AUTH_SOCK
|
||||
'';
|
||||
|
||||
users.users.kiri = {
|
||||
linger = true;
|
||||
openssh.authorizedKeys.keys = [
|
||||
@@ -50,16 +17,28 @@ in
|
||||
environment.systemPackages = [
|
||||
pkgs.kitty
|
||||
];
|
||||
|
||||
networking = {
|
||||
firewall.enable = true;
|
||||
firewall.allowPing = false;
|
||||
nftables.enable = true;
|
||||
};
|
||||
|
||||
security.pam = {
|
||||
sshAgentAuth.enable = true;
|
||||
services.sudo.sshAgentAuth = true;
|
||||
};
|
||||
};
|
||||
|
||||
flake.modules.nixos.orion = metaLib.mkHost {
|
||||
name = "orion";
|
||||
kind = "server";
|
||||
users = {
|
||||
inherit (metaLib.users) kiri;
|
||||
};
|
||||
|
||||
imports = [
|
||||
nixosModules."server-base"
|
||||
nixosModules.caddy
|
||||
nixosModules."server-firewall"
|
||||
nixosModules."ssh-agent-auth"
|
||||
nixosModules."orion-admin"
|
||||
nixosModules.vaultwarden
|
||||
nixosModules.radicale
|
||||
nixosModules.actual
|
||||
nixosModules.gitea
|
||||
nixosModules."user-kiri"
|
||||
./_hardware.nix
|
||||
./_disk.nix
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,83 +5,45 @@
|
||||
}:
|
||||
let
|
||||
nixosModules = config.flake.modules.nixos;
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
metaLib = config.meta.lib;
|
||||
in
|
||||
{
|
||||
flake.modules.nixos.polaris =
|
||||
{
|
||||
config,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
{
|
||||
_module.args.hostType = "desktop";
|
||||
flake.modules.nixos.polaris = metaLib.mkHost {
|
||||
name = "polaris";
|
||||
kind = "workstation";
|
||||
|
||||
imports = [
|
||||
nixosModules.desktopBase
|
||||
nixosModules.steam
|
||||
nixosModules.kiri
|
||||
nixosModules.ergon
|
||||
./_hardware.nix
|
||||
]
|
||||
++ (with inputs.nixos-hardware.nixosModules; [
|
||||
common-pc
|
||||
common-pc-ssd
|
||||
common-cpu-amd
|
||||
common-gpu-amd
|
||||
]);
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
networking.hostName = "polaris";
|
||||
|
||||
home-manager.users.kiri.imports = with homeModules; [
|
||||
nix
|
||||
bitwarden
|
||||
email
|
||||
pim
|
||||
mpv
|
||||
niri
|
||||
clipboard
|
||||
localApps
|
||||
qbittorrentClient
|
||||
vicinae
|
||||
xdg
|
||||
theme
|
||||
noctalia
|
||||
];
|
||||
|
||||
home-manager.users.kiri.programs.niri.settings.outputs = {
|
||||
"LG Electronics LG ULTRAGEAR 103NTYT8R290" = {
|
||||
"focus-at-startup" = true;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
|
||||
"LG Electronics LG ULTRAGEAR 103NTJJ8R332" = {
|
||||
position = {
|
||||
x = 2560;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
displays = {
|
||||
"LG Electronics LG ULTRAGEAR 103NTYT8R290" = {
|
||||
primary = true;
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
|
||||
boot.loader.systemd-boot.extraInstallCommands = ''
|
||||
ENTRIES="${config.boot.loader.efi.efiSysMountPoint}/loader/entries"
|
||||
PROFILES="/nix/var/nix/profiles"
|
||||
|
||||
for file in "$ENTRIES"/nixos-generation-*.conf; do
|
||||
generation=$(${pkgs.coreutils}/bin/basename "$file" | ${pkgs.gnugrep}/bin/grep -o -E '[0-9]+')
|
||||
timestamp=$(${pkgs.coreutils}/bin/stat -c %y "$PROFILES/system-$generation-link" 2>/dev/null | ${pkgs.coreutils}/bin/cut -d. -f1)
|
||||
|
||||
if [ -z "$timestamp" ]; then
|
||||
timestamp="Unknown Date"
|
||||
fi
|
||||
|
||||
${pkgs.gnused}/bin/sed -i "s/^version .*/version Generation $generation - $timestamp/" "$file"
|
||||
done
|
||||
'';
|
||||
"LG Electronics LG ULTRAGEAR 103NTJJ8R332" = {
|
||||
x = 2560;
|
||||
y = 0;
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
inherit (metaLib.users)
|
||||
ergon
|
||||
kiri
|
||||
;
|
||||
};
|
||||
|
||||
imports = [
|
||||
nixosModules."workstation-base"
|
||||
nixosModules.steam
|
||||
nixosModules."user-kiri"
|
||||
nixosModules."user-ergon"
|
||||
./_hardware.nix
|
||||
]
|
||||
++ (with inputs.nixos-hardware.nixosModules; [
|
||||
common-pc
|
||||
common-pc-ssd
|
||||
common-cpu-amd
|
||||
common-gpu-amd
|
||||
]);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -5,59 +5,42 @@
|
||||
}:
|
||||
let
|
||||
nixosModules = config.flake.modules.nixos;
|
||||
homeModules = config.flake.modules.homeManager;
|
||||
metaLib = config.meta.lib;
|
||||
in
|
||||
{
|
||||
flake.modules.nixos.zenith =
|
||||
{ ... }:
|
||||
{
|
||||
_module.args.hostType = "laptop";
|
||||
flake.modules.nixos.zenith = metaLib.mkHost {
|
||||
name = "zenith";
|
||||
kind = "workstation";
|
||||
traits = [ "portable" ];
|
||||
|
||||
imports = [
|
||||
nixosModules.desktopBase
|
||||
nixosModules.kiri
|
||||
nixosModules.ergon
|
||||
./_hardware.nix
|
||||
inputs.nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu
|
||||
];
|
||||
|
||||
system.stateVersion = "24.05";
|
||||
|
||||
networking.hostName = "zenith";
|
||||
|
||||
home-manager.users.kiri.imports = with homeModules; [
|
||||
nix
|
||||
bitwarden
|
||||
email
|
||||
pim
|
||||
mpv
|
||||
niri
|
||||
clipboard
|
||||
localApps
|
||||
qbittorrentClient
|
||||
vicinae
|
||||
xdg
|
||||
theme
|
||||
noctalia
|
||||
];
|
||||
|
||||
home-manager.users.kiri.programs.niri.settings.outputs = {
|
||||
"California Institute of Technology 0x1410 Unknown" = {
|
||||
"focus-at-startup" = true;
|
||||
position = {
|
||||
x = 0;
|
||||
y = 0;
|
||||
};
|
||||
scale = 1.5;
|
||||
mode = {
|
||||
width = 3072;
|
||||
height = 1920;
|
||||
refresh = 120.002;
|
||||
};
|
||||
displays = {
|
||||
"California Institute of Technology 0x1410 Unknown" = {
|
||||
primary = true;
|
||||
x = 0;
|
||||
y = 0;
|
||||
scale = 1.5;
|
||||
mode = {
|
||||
width = 3072;
|
||||
height = 1920;
|
||||
refresh = 120.002;
|
||||
};
|
||||
};
|
||||
|
||||
hardware.enableRedistributableFirmware = true;
|
||||
services.fwupd.enable = true;
|
||||
};
|
||||
|
||||
users = {
|
||||
inherit (metaLib.users)
|
||||
ergon
|
||||
kiri
|
||||
;
|
||||
};
|
||||
|
||||
imports = [
|
||||
nixosModules."workstation-base"
|
||||
nixosModules."portable-host"
|
||||
nixosModules."user-kiri"
|
||||
nixosModules."user-ergon"
|
||||
./_hardware.nix
|
||||
inputs.nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user