Update a lot of options, simplify variables, replace options with tags

This commit is contained in:
Bun 2025-06-04 16:12:08 -04:00
parent dbc0ab6dd3
commit 7667ef9a1b
147 changed files with 663 additions and 928 deletions

View file

@ -1,10 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [
"latptop"
"pc"
];
targetHost = "";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -11,7 +10,9 @@
];
system = {
desktop.enable = true;
nixos.tags = [ "pc" ];
stateVersion = "25.05";
};
deployment.targetHost = "";
}

View file

@ -1,7 +1,6 @@
{ config, nodes, ... }:
{ ... }:
{
fileSystems = with config.sysusers; with nodes; {
# Local mounts
fileSystems = {
"/persist/storage" = {
device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6";
fsType = "btrfs";
@ -11,43 +10,10 @@
"subvol=storage"
];
};
"/persist/home/${main}/games" = {
device = "/dev/disk/by-uuid/d0d6783f-ad51-4d85-b8a9-3374f6460ef6";
fsType = "btrfs";
options = [
"nofail"
"nosuid"
"subvol=games"
];
};
# Network mounts
"/home/${main}/Network/Midas" = {
device = "[${midas.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Kitty" = {
device = "[${kitty.config.deployment.targetHost}]:/storage/bun";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Prophet" = {
device = "[${prophet.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"kitty".enable = true;
"midas".enable = true;
"prophet".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -17,6 +17,7 @@
kernelModules = [ "kvm-intel" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,6 +1,6 @@
{ config, lib, pkgs, ... }:
{
home-manager.users."${config.sysusers.main}" = {
home-manager.users."${config.vars.mainUser}" = {
home = {
desktop.enable = true;
gaming.enable = true;

View file

@ -1,10 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [
"misc"
"pc"
];
targetHost = "4ec:1001:ca5a:ae79:40e2:cb4c:e3c9:f401";
};
}

View file

@ -1,8 +1,7 @@
{ lib, ... }:
{ ... }:
{
imports = [
./boot
./colmena
./disko
./hardware
./services
@ -11,7 +10,9 @@
];
system = {
desktop.enable = true;
nixos.tags = [ "pc" ];
stateVersion = "24.11";
};
deployment.targetHost = "4ec:1001:ca5a:ae79:40e2:cb4c:e3c9:f401";
}

View file

@ -1,4 +1,4 @@
{ config, lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -18,6 +18,10 @@
kernelModules = [ "kvm-intel" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu = {
amd.updateMicrocode = true;
intel.updateMicrocode = true;
};
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
desktop.enable = true;
school.enable = true;
stateVersion = lib.mkForce config.system.stateVersion;

View file

@ -1,10 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [
"latptop"
"pc"
];
targetHost = "40e:404:a427:da33:163e:97b3:a2a3:9ed4";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -11,7 +10,9 @@
];
system = {
desktop.enable = true;
nixos.tags = [ "pc" ];
stateVersion = "24.11";
};
deployment.targetHost = "40e:404:a427:da33:163e:97b3:a2a3:9ed4";
}

View file

@ -1,33 +1,9 @@
{ config, nodes, ... }:
{ ... }:
{
fileSystems = with config.sysusers; with nodes; {
fileSystems = {
# Network mounts
"/home/${main}/Network/Midas" = {
device = "[${midas.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Kitty" = {
device = "[${kitty.config.deployment.targetHost}]:/storage/bun";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Prophet" = {
device = "[${prophet.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"kitty".enable = true;
"midas".enable = true;
"prophet".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -16,6 +16,7 @@
kernelModules = [ "kvm-intel" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
desktop.enable = true;
production.enable = true;
stateVersion = lib.mkForce config.system.stateVersion;

View file

@ -1,10 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [
"latptop"
"pc"
];
targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -13,8 +12,10 @@
];
system = {
desktop.enable = true;
nixos.tags = [ "pc" ];
steamdeck.enable = true;
stateVersion = "24.11";
};
deployment.targetHost = "5ce:969c:40d1:9575:f5e:591d:c377:a20b";
}

View file

@ -1,7 +1,6 @@
{ config, nodes, ... }:
{ config, ... }:
{
fileSystems = with config.sysusers; with nodes; {
# Local mounts
fileSystems = {
"/mnt/Games" = {
device = "/dev/disk/by-uuid/cb109a85-846d-4417-9c50-a2279bd20803";
fsType = "btrfs";
@ -12,32 +11,8 @@
};
# Network mounts
"/home/${main}/Network/Midas" = {
device = "[${midas.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Kitty" = {
device = "[${kitty.config.deployment.targetHost}]:/storage/bun";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Prophet" = {
device = "[${prophet.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"kitty".enable = !config.system.steamdeck.enable;
"midas".enable = !config.system.steamdeck.enable;
"prophet".enable = !config.system.steamdeck.enable;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -15,6 +15,7 @@
kernelModules = [ "kvm-amd" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.amd.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -30,9 +30,9 @@
programs.steam.extest.enable = true;
services = {
desktopManager.gnome.enable = true;
keyd.enable = lib.mkForce false;
tlp.enable = lib.mkForce false;
desktopManager.gnome.enable = true;
};
hardware.xone.enable = true;

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
guifull.enable = true;
school.enable = true;
enableNixpkgsReleaseCheck = false;

View file

@ -1,7 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [ "server" ];
targetHost = "53f:dc2d:80c9:3ca2:4b15:ef4d:38a0:c868";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -10,13 +9,17 @@
../../modules/system
];
networking.hostId = "8745e22e";
system = {
server.enable = true;
extraUsers.enable = true;
nixos.tags = [
"extra-users"
"server"
];
stateVersion = "24.11";
};
deployment.targetHost = "53f:dc2d:80c9:3ca2:4b15:ef4d:38a0:c868";
networking.hostId = "8745e22e";
services.nfs.server.enable = true;
}

View file

@ -1,6 +1,6 @@
{ config, nodes, ... }:
{ ... }:
{
fileSystems = with config.sysusers; with nodes; {
fileSystems = {
"/persist/storage" = {
device = "/dev/disk/by-uuid/edd3e293-1aff-4fc0-96fa-4e17d6cccfca";
fsType = "btrfs";
@ -11,23 +11,7 @@
};
# Network mounts
"/home/${main}/Network/Midas" = {
device = "[${midas.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Prophet" = {
device = "[${prophet.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"midas".enable = true;
"prophet".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ ... }:
{
boot.initrd = {
availableKernelModules = [
@ -9,6 +9,7 @@
kernelModules = [ "dm-snapshot" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
stateVersion = lib.mkForce config.system.stateVersion;
};
}

View file

@ -1,7 +0,0 @@
{ config, ... }:
{
deployment = {
tags = [ "server" ];
targetHost = "538:e163:87ba:f847:3646:18b6:6b01:d8f8";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -12,10 +11,10 @@
../../modules/system
];
networking.hostId = "38ba3f57";
system = {
server.enable = true;
nixos.tags = [ "server" ];
stateVersion = "24.11";
};
deployment.targetHost = "538:e163:87ba:f847:3646:18b6:6b01:d8f8";
}

View file

@ -1,6 +1,6 @@
{ config, nodes, ... }:
{ ... }:
{
fileSystems = with config.sysusers; with nodes; {
fileSystems = {
"/persist" = {
device = "/dev/disk/by-uuid/acf95700-8669-45c7-9a72-bf3215b3c325";
fsType = "btrfs";
@ -10,14 +10,9 @@
"subvol=persist"
];
};
"/kitty" = {
device = "[${kitty.config.deployment.targetHost}]:/storage/${main}";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
# Network mounts
"kitty".enable = true;
"prophet".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, ... }:
{ ... }:
{
boot.initrd = {
availableKernelModules = [
@ -10,6 +10,7 @@
kernelModules = [ "dm-snapshot" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.intel.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -9,5 +9,6 @@
address = "10.1.0.1";
interface = "enp0s31f6";
};
hostId = "38ba3f57";
};
}

View file

@ -1,21 +1,20 @@
{ ... }:
{
imports = [ ./nginx ];
services = {
cloudflare-dyndns.enable = true;
forgejo.enable = true;
icecast.enable = true;
jellyfin.enable = true;
lemmy.enable = true;
mastodon.enable = true;
matrix-synapse.enable = true;
mysql.enable = true;
nextcloud.enable = true;
nfs.server.enable = true;
nginx.enable = true;
owncast.enable = true;
transmission.enable = true;
vaultwarden.enable = true;
webserver.enable = true;
minecraft-servers = {
enable = true;

View file

@ -0,0 +1,6 @@
{ ... }:
{
imports = [ ./nixfox ];
services.nginx.enable = true;
}

View file

@ -0,0 +1,29 @@
{ config, lib, ... }:
{
services.nginx.virtualHosts = {
"www.nixfox.ca" = {
enableACME = true;
addSSL = true;
default = true;
root = "/var/www/landing-page";
};
"nixfox.ca" = {
enableACME = true;
addSSL = true;
globalRedirect = "www.nixfox.ca";
locations = {
"/.well-known/matrix/client".extraConfig = ''
default_type application/json;
return 200 '{
"m.homeserver": { "base_url": "https://matrix.nixfox.ca" },
"m.identity_server": { "base_url": "https://matrix.org" }
}';
'';
"/.well-known/matrix/server".extraConfig = ''
default_type application/json;
return 200 '{ "m.server": "matrix.nixfox.ca:443" }';
'';
};
};
};
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
stateVersion = lib.mkForce config.system.stateVersion;
};
}

View file

@ -1,8 +0,0 @@
{ config, ... }:
{
deployment = {
buildOnTarget = true;
tags = [ "server" ];
targetHost = "42f:2737:2aed:4dee:cbe4:3c73:1918:ad9b";
};
}

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -12,10 +11,15 @@
(modulesPath + "/profiles/headless.nix")
];
networking.hostId = "97a21a38";
system = {
server.enable = true;
nixos.tags = [ "server" ];
stateVersion = "24.05";
};
deployment = {
buildOnTarget = true;
targetHost = "42f:2737:2aed:4dee:cbe4:3c73:1918:ad9b";
};
networking.hostId = "97a21a38";
}

View file

@ -1,11 +1,17 @@
{ ... }:
{
fileSystems."/persist/storage" = {
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
fsType = "btrfs";
options = [
"nofail"
"nosuid"
];
fileSystems = {
"/persist/storage" = {
device = "/dev/disk/by-uuid/ef465845-cc56-4db5-9260-8ae515eb025e";
fsType = "btrfs";
options = [
"nofail"
"nosuid"
];
};
# Network mounts
"kitty".enable = true;
"midas".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ lib, ... }:
{ ... }:
{
boot.initrd = {
availableKernelModules = [
@ -8,5 +8,5 @@
kernelModules = [ "dm-snapshot" ];
};
nixpkgs.hostPlatform = lib.mkDefault "aarch64-linux";
nixpkgs.hostPlatform = "aarch64-linux";
}

View file

@ -2,9 +2,10 @@
{
services = {
cloudflare-dyndns.enable = true;
mailserver.enable = true;
mysql.enable = true;
nfs.server.enable = true;
nginx.enable = true;
};
mailserver.enable = true;
}

6
hosts/prophet/user/@! Normal file
View file

@ -0,0 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.vars.mainUser}".home = {
stateVersion = lib.mkForce config.system.stateVersion;
};
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}".home = {
home-manager.users."${config.vars.mainUser}".home = {
stateVersion = lib.mkForce config.system.stateVersion;
};
}

View file

@ -1,17 +1,11 @@
{ config, lib, pkgs, ... }:
let
commonKernelParams = [
# VM/GPU passthrough
"amd_iommu=on"
"iommu=pt"
# Isolate devices into IOMMU groups
"pcie_acs_override=downstream,multifunction"
"pci=routeirq"
];
in {
boot = {
# Latest kernel and IOMMU isolation
kernelPackages = pkgs.linuxPackages_6_14;
kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:1f82,10de:10fa" ];
@ -30,8 +24,5 @@ in {
};
# Use second GPU on boot
specialisation.gputwo.configuration = {
boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
environment.sessionVariables.WLR_RENDERER = lib.mkForce "gles2";
};
specialisation.gputwo.configuration.boot.kernelParams = commonKernelParams ++ [ "vfio-pci.ids=10de:2504,10de:228e" ];
}

View file

@ -1,4 +1,4 @@
{ config, ... }:
{ ... }:
{
deployment = {
tags = [

View file

@ -2,7 +2,6 @@
{
imports = [
./boot
./colmena
./disko
./filesystems
./hardware
@ -11,10 +10,13 @@
];
system = {
desktop.enable = true;
nvidia.enable = true;
nixos.tags = [ "pc" ];
stateVersion = "24.05";
};
deployment.targetHost = "4e4:535:9d47:f367:becd:6557:458d:5b1b";
services.xserver.videoDrivers = [ "nvidia" ];
virtualisation.libvirtd.enable = true;
}

View file

@ -1,6 +1,6 @@
{ config, nodes, ... }:
{ ... }:
{
fileSystems = with config.sysusers; with nodes; {
fileSystems = {
# Games and such
"/mnt/Linux1" = {
device = "/dev/disk/by-uuid/b2901f8c-ffda-4b88-bb63-a9ea0c96ccb4";
@ -39,32 +39,8 @@
};
# Network mounts
"/home/${main}/Network/Midas" = {
device = "[${midas.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Kitty" = {
device = "[${kitty.config.deployment.targetHost}]:/storage/${main}";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"/home/${main}/Network/Prophet" = {
device = "[${prophet.config.deployment.targetHost}]:/storage";
fsType = "nfs4";
options = [
"noauto"
"soft"
"x-systemd.automount"
];
};
"kitty".enable = true;
"midas".enable = true;
"prophet".enable = true;
};
}

View file

@ -1,4 +1,4 @@
{ config, lib, modulesPath, ... }:
{ modulesPath, ... }:
{
imports = [ (modulesPath + "/installer/scan/not-detected.nix") ];
@ -16,6 +16,7 @@
kernelModules = [ "kvm-amd" ];
};
nixpkgs.hostPlatform = lib.mkDefault "x86_64-linux";
hardware.cpu.amd.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
hardware.cpu.amd.updateMicrocode = true;
nixpkgs.hostPlatform = "x86_64-linux";
}

View file

@ -1,6 +1,6 @@
{ config, lib, ... }:
{
home-manager.users."${config.sysusers.main}" = {
home-manager.users."${config.vars.mainUser}" = {
home = {
guifull.enable = true;
stateVersion = lib.mkForce config.system.stateVersion;