dlkjdsalkjsa

This commit is contained in:
2025-06-15 03:09:23 +02:00
parent b746d45bdd
commit 433213d128
2 changed files with 174 additions and 155 deletions

192
flake.nix
View File

@@ -127,56 +127,56 @@
...
} @ inputs':
let
inputs-edge = inputs' // {
input-views.inputs-edge = inputs' // {
nixpkgs = inputs'.nixpkgs-edge;
unstable = inputs'.nixpkgs-edge;
home-manager = inputs'.home-manager-edge;
sops-nix = inputs'.sops-nix-edge;
};
inputs-2505 = inputs' // {
input-views.inputs-2505 = inputs' // {
nixpkgs = inputs'.nixpkgs-2505;
unstable = inputs'.nixpkgs-edge;
home-manager = inputs'.home-manager-2505;
sops-nix = inputs'.sops-nix-2505;
};
inputs-2411 = inputs' // {
input-views.inputs-2411 = inputs' // {
nixpkgs = inputs'.nixpkgs-2411;
unstable = inputs'.nixpkgs-2505;
home-manager = inputs'.home-manager-2411;
sops-nix = inputs'.sops-nix-2411;
};
inputs-2405 = inputs' // {
input-views.inputs-2405 = inputs' // {
nixpkgs = inputs'.nixpkgs-2405;
unstable = inputs'.nixpkgs-2411;
home-manager = inputs'.home-manager-2405;
sops-nix = inputs'.sops-nix-2405;
};
inputs-2311 = inputs' // {
input-views.inputs-2311 = inputs' // {
nixpkgs = inputs'.nixpkgs-2311;
unstable = inputs'.nixpkgs-2405;
home-manager = inputs'.home-manager-2311;
sops-nix = inputs'.sops-nix-2311;
};
inputs-2305 = inputs' // {
input-views.inputs-2305 = inputs' // {
nixpkgs = inputs'.nixpkgs-2305;
unstable = inputs'.nixpkgs-2311;
home-manager = inputs'.home-manager-2305;
sops-nix = inputs'.sops-nix-2305;
};
inputs-2211 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2211; };
inputs-2205 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2205; };
inputs-2111 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2111; };
inputs-2105 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2105; };
inputs-2009 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2009; };
inputs-2003 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-2003; };
inputs-1909 = inputs-2305 // { nixpkgs = inputs'.nixpkgs-1909; };
inputs-test = inputs-edge // { nixpkgs = inputs'.nixpkgs-test; unstable = inputs'.nixpkgs-test; };
inputs-250T = inputs-2505 // { unstable = inputs'.nixpkgs-test; };
inputs-241T = inputs-2411 // { unstable = inputs'.nixpkgs-test; }; # TODO: remove
input-views.inputs-2211 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2211; };
input-views.inputs-2205 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2205; };
input-views.inputs-2111 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2111; };
input-views.inputs-2105 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2105; };
input-views.inputs-2009 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2009; };
input-views.inputs-2003 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-2003; };
input-views.inputs-1909 = input-views.inputs-2305 // { nixpkgs = inputs'.nixpkgs-1909; };
input-views.inputs-test = input-views.inputs-edge // { nixpkgs = inputs'.nixpkgs-test; unstable = inputs'.nixpkgs-test; };
input-views.inputs-250T = input-views.inputs-2505 // { unstable = inputs'.nixpkgs-test; };
input-views.inputs-241T = input-views.inputs-2411 // { unstable = inputs'.nixpkgs-test; }; # TODO: remove
forSystems = systems: f: inputs-edge.nixpkgs.lib.genAttrs systems (system: f rec {
forSystems = systems: f: input-views.inputs-edge.nixpkgs.lib.genAttrs systems (system: f rec {
inherit system;
inputs = inputs-edge;
inputs = input-views.inputs-edge;
pkgs = inputs.nixpkgs.legacyPackages.${system};
lib = inputs.nixpkgs.legacyPackages.${system}.lib;
});
@@ -186,114 +186,18 @@
"riscv64-linux"
];
mkModule = extra-modules: domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
imports = [
./profiles/base
"${self}/hosts/nixos/${hostname}/configuration.nix"
inputs.home-manager.nixosModules.default
#inputs.nix-index-database.nixosModules.nix-index # TODO: fix?
] ++ modules ++ extra-modules;
#++ inputs.flake-programs-sqlite.nixosModules.programs-sqlite; # TODO: make work
home-manager.useGlobalPkgs = true; # go brrr, reuse overrides
home-manager.extraSpecialArgs = {
inherit inputs;
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
];
# still needed even if using networkd
networking.hostName = hostname;
networking.domain = domain;
networking.search = [ domain ];
nixpkgs.overlays = [
self.overlays.pbsdspkgs
inputs.system-manager-edge.overlays.default
(final: prev: {
unstable = import inputs.unstable {
inherit system;
config = final.pkgs.config;
};
})
];
# This makes commandline tools like 'nix run nixpkgs#hello'
# and 'nix-shell -p hello' use the same channel as system was built with
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.nixpkgs-unstable.flake = inputs.unstable;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-unstable=${inputs.unstable}"
];
});
mkConfig = extra-modules: domain: system: inputs: stateVersion: modules: hostname: inputs.nixpkgs.lib.nixosSystem {
#inherit system;
specialArgs = {
inherit inputs;
};
modules = [
# TODO: specify this in mkModule?
{
nixpkgs.hostPlatform = system;
#nixpkgs.buildPlatform = system;
}
(mkModule extra-modules domain system inputs stateVersion modules hostname)
];
};
# TODO: move this to a file or separate flake
mkHosts = mk: let
ls = imports: { inherit imports; };
hw = nixos-hardware.nixosModules;
#vf = nixos-vf2.nixosModules;
amd = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-amd ];
intel = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel ./hardware/gpu/intel.nix ];
intel-novga = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel-cpu-only ];
cuda = ls [ ./hardware/gpu/cuda.nix hw.common-gpu-nvidia-nonprime ];
cuda-prime = ls [ ./hardware/gpu/cuda.nix hw.common-gpu-nvidia ];
rocm = ls [ ./hardware/gpu/rocm.nix hw.common-gpu-amd ];
nspawn = ls [ "${nixos-nspawn}/nspawn-image.nix" { boot.isContainer = true; } ];
hidpi = ls [ hw.common-hidpi ./profiles/hidpi.nix ];
p1005 = ./hardware/printer/hp-laserjet-p1005.nix;
au = ./profiles/auto-upgrade.nix;
ts1 = ./profiles/tailscale-inner.nix;
ts2 = ./profiles/tailscale-outer.nix;
tse = ./profiles/tailscale-exit-node.nix;
#rb = ./profiles/known-hosts; # TODO
nixld = ./profiles/nix-ld.nix;
dns64 = { config, ... }: {
networking.nameservers = [ "2001:700:1:11::2:51" ]; # dns64.uninett.no
networking.networkmanager.enable = true;
networking.networkmanager.insertNameservers = config.networking.nameservers; # https://github.com/NixOS/nixpkgs/issues/61230
networking.resolvconf.enable = false;
};
in builtins.mapAttrs (hostname: curried: curried hostname) {
#hostname "domain" "system" inputs "state" [ modules ... ]
# asgaut = mk "pbsds.net" "riscv64-linux" inputs-2405 "24.05" [ hw.starfive-visionfive-2 ];
noximilien = mk "pbsds.net" "x86_64-linux" inputs-241T "24.11" [ au ts1 tse intel ];
nord = mk "pbsds.net" "x86_64-linux" inputs-2411 "24.11" [ au ts1 intel-novga hw.common-gpu-intel-sandy-bridge rocm hidpi ];
sopp = mk "pbsds.net" "x86_64-linux" inputs-edge "24.11" [ au ts1 nixld intel cuda p1005 ];
bjarte = mk "pbsds.net" "x86_64-linux" inputs-edge "24.11" [ ts1 nixld intel hw.lenovo-thinkpad-x1-7th-gen ];
bolle = mk "pbsds.net" "x86_64-linux" inputs-2505 "24.11" [ au ts2 intel ];
eple = mk "pbsds.net" "x86_64-linux" inputs-2505 "24.11" [ au ts1 tse dns64 intel rocm ];
garp = mk "pbsds.net" "x86_64-linux" inputs-2505 "24.11" [ au ts2 intel-novga cuda ];
# hasselknippe= mk "pbsds.net" "aarch64-linux" inputs-2405 "24.05" [ ts1 hw.pine64-pinebook-pro ];
#gomperud smattkuken skrytebiffen skalkesnerken balleby bingus skjrlaltatjlstad
#bergjlot snortheimsmoen ditlefsen skrukkerud podebusk zmaragd makrell alfnes blix urke pytte uddu imdorf rosenqvist
};
hosts = import ./hosts { inherit input-views; };
in {
inputs = inputs';
lib = import ./lib.nix { inputs = inputs'; };
nixosModules = mkHosts (mkModule []);
nixosConfigurations = mkHosts (mkConfig []);
nixosReports = builtins.mapAttrs (key: self.lib.mkNixosConfigSummary) self.nixosConfigurations;
inherit (hosts)
nixosModules
nixosConfigurations
nixosReports
images
;
overlays = {
pbsdspkgs = final: prev: let
@@ -329,28 +233,6 @@
in
pbsdspkgs // { });
images = forAllSystems ({ inputs, system, pkgs, lib, ... }: let
mk-nspawn-setup = hostname: # TODO: nspawn-tarball.nix populates /etc/nixos with junk
(pkgs.callPackage ./pkgs/mk-nspawn-setup {})
(mkHosts (mkConfig [ "${nixos-nspawn}/nspawn-tarball.nix" ])).${hostname};
in {
asgaut-sd = (mkHosts (mkConfig [
"${nixos-hardware}/starfive/visionfive/v2/sd-image.nix"
{
nixpkgs.buildPlatform.system = system; # cross
sdImage.compressImage = false;
}
])).asgaut.config.system.build.sdImage;
#brumlebasse-nspawn-setup = mk-nspawn-setup "brumlebasse";
#brumlebasse-openstack = nixos-generators-2405.nixosGenerate {
# system = "x86_64-linux";
# specialArgs = { inherit inputs; };
# modules = [ (mkHosts (mkModule [])).brumlebasse ];
# format = "openstack";
#};
});
homeModules.jump = ./users/pbsds/modules/jump.nix;
homeModules.micro = ./users/pbsds/modules/micro.nix;
@@ -383,20 +265,20 @@
# TODO: nix-portable - heid
# TODO: garmr
# TODO: furios?
pbsds = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-edge [ ./users/pbsds/home/minimal.nix ];
pbsds-edge = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-edge [ ./users/pbsds/home ];
pbsds-2505 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-2505 [ ./users/pbsds/home ];
pbsds-2411 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-2411 [ ./users/pbsds/home ];
pbsds-gnome-edge = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-edge [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2505 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-2505 [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2411 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" inputs-2411 [ ./users/pbsds/home/gnome.nix ];
pbsds = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-edge [ ./users/pbsds/home/minimal.nix ];
pbsds-edge = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-edge [ ./users/pbsds/home ];
pbsds-2505 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-2505 [ ./users/pbsds/home ];
pbsds-2411 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-2411 [ ./users/pbsds/home ];
pbsds-gnome-edge = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-edge [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2505 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-2505 [ ./users/pbsds/home/gnome.nix ];
pbsds-gnome-2411 = mkHome "pbsds" "/home/pbsds" "x86_64-linux" input-views.inputs-2411 [ ./users/pbsds/home/gnome.nix ];
"pederbs@pvv" = mkHome "pederbs" "/home/pvv/d/pederbs" "x86_64-linux" inputs-2505 [ ./users/pbsds/home/minimal.nix ];
"pederbs@pvv" = mkHome "pederbs" "/home/pvv/d/pederbs" "x86_64-linux" input-views.inputs-2505 [ ./users/pbsds/home/minimal.nix ];
};
# TODO: use this to pull changes to repo
homeFileMap = let
inherit (inputs-edge.nixpkgs) lib;
inherit (input-views.inputs-edge.nixpkgs) lib;
files = self.homeConfigurations.x86_64-linux.pbsds-gnome.config.home.file;
in lib.pipe files [
(lib.filterAttrs (k: v: lib.hasPrefix (toString self) (toString v.source)))
@@ -418,8 +300,8 @@
];
};
in {
FuriPhoneFLX1 = mkSystem "furiphoneflx1" inputs-edge "aarch64-linux";
test = mkSystem "furiphoneflx1" inputs-edge "x86_64-linux";
FuriPhoneFLX1 = mkSystem "furiphoneflx1" input-views.inputs-edge "aarch64-linux";
test = mkSystem "furiphoneflx1" input-views.inputs-edge "x86_64-linux";
};
#checks = forAllSystems ({ inputs, system, ... }: {
@@ -441,7 +323,7 @@
# inherit (self.checks.${system}.pre-commit-check) shellHook;
# packages = (args.packages or []) ++ packages ++ self.checks.${system}.pre-commit-check.enabledPackages;
#});
inherit (inputs-edge.system-manager-edge.packages.${system}) system-manager;
inherit (input-views.inputs-edge.system-manager-edge.packages.${system}) system-manager;
envrc-pkgs = [
self.packages.${system}.nom-nixos-rebuild
# self.packages.${system}.nom-nixos-rebuild-ng

137
hosts/default.nix Normal file
View File

@@ -0,0 +1,137 @@
{ input-views }:
let
inherit (input-views.inputs-edge) self;
mkModule = extra-modules: domain: system: inputs: stateVersion: modules: hostname: ({ lib, ... }: {
system.stateVersion = lib.mkDefault stateVersion; # TODO: home-manager
imports = [
./../profiles/base
./nixos/${hostname}/configuration.nix
inputs.home-manager.nixosModules.default
#inputs.nix-index-database.nixosModules.nix-index # TODO: fix?
] ++ modules ++ extra-modules;
#++ inputs.flake-programs-sqlite.nixosModules.programs-sqlite; # TODO: make work
home-manager.useGlobalPkgs = true; # go brrr, reuse overrides
home-manager.extraSpecialArgs = {
inherit inputs;
};
home-manager.sharedModules = [
inputs.sops-nix.homeManagerModules.sops
inputs.nix-index-database.hmModules.nix-index
];
# still needed even if using networkd
networking.hostName = hostname;
networking.domain = domain;
networking.search = [ domain ];
nixpkgs.overlays = [
self.overlays.pbsdspkgs
inputs.system-manager-edge.overlays.default
(final: prev: {
unstable = import inputs.unstable {
inherit system;
config = final.pkgs.config;
};
})
];
# This makes commandline tools like 'nix run nixpkgs#hello'
# and 'nix-shell -p hello' use the same channel as system was built with
nix.registry.nixpkgs.flake = inputs.nixpkgs;
nix.registry.nixpkgs-unstable.flake = inputs.unstable;
nix.nixPath = [
"nixpkgs=${inputs.nixpkgs}"
"nixpkgs-unstable=${inputs.unstable}"
];
});
mkConfig = extra-modules: domain: system: inputs: stateVersion: modules: hostname: inputs.nixpkgs.lib.nixosSystem {
#inherit system;
specialArgs = {
inherit inputs;
};
modules = [
# TODO: specify this in mkModule?
{
nixpkgs.hostPlatform = system;
#nixpkgs.buildPlatform = system;
}
(mkModule extra-modules domain system inputs stateVersion modules hostname)
];
};
# TODO: move this to a file or separate flake
mkHosts = mk: let
ls = imports: { inherit imports; };
hw = input-views.inputs-edge.nixos-hardware.nixosModules;
#vf = input-views.inputs-edge.nixos-vf2.nixosModules;
amd = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-amd ];
intel = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel ./../hardware/gpu/intel.nix ];
intel-novga = ls [ hw.common-pc hw.common-pc-ssd hw.common-cpu-intel-cpu-only ];
cuda = ls [ ./../hardware/gpu/cuda.nix hw.common-gpu-nvidia-nonprime ];
cuda-prime = ls [ ./../hardware/gpu/cuda.nix hw.common-gpu-nvidia ];
rocm = ls [ ./../hardware/gpu/rocm.nix hw.common-gpu-amd ];
# nspawn = ls [ "${nixos-nspawn}/nspawn-image.nix" { boot.isContainer = true; } ];
hidpi = ls [ hw.common-hidpi ./../profiles/hidpi.nix ];
p1005 = ./../hardware/printer/hp-laserjet-p1005.nix;
au = ./../profiles/auto-upgrade.nix;
ts1 = ./../profiles/tailscale-inner.nix;
ts2 = ./../profiles/tailscale-outer.nix;
tse = ./../profiles/tailscale-exit-node.nix;
#rb = ./../profiles/known-hosts; # TODO
nixld = ./../profiles/nix-ld.nix;
dns64 = { config, ... }: {
networking.nameservers = [ "2001:700:1:11::2:51" ]; # dns64.uninett.no
networking.networkmanager.enable = true;
networking.networkmanager.insertNameservers = config.networking.nameservers; # https://github.com/NixOS/nixpkgs/issues/61230
networking.resolvconf.enable = false;
};
in builtins.mapAttrs (hostname: curried: curried hostname) {
#hostname "domain" "system" inputs "state" [ modules ... ]
# asgaut = mk "pbsds.net" "riscv64-linux" input-views.inputs-2405 "24.05" [ hw.starfive-visionfive-2 ];
# noximilien = mk "pbsds.net" "x86_64-linux" input-views.inputs-250T "24.11" [ au ts1 tse intel ];
noximilien = mk "pbsds.net" "x86_64-linux" input-views.inputs-241T "24.11" [ au ts1 tse intel ];
nord = mk "pbsds.net" "x86_64-linux" input-views.inputs-2411 "24.11" [ au ts1 intel-novga hw.common-gpu-intel-sandy-bridge rocm hidpi ];
sopp = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "24.11" [ au ts1 nixld intel cuda p1005 ];
bjarte = mk "pbsds.net" "x86_64-linux" input-views.inputs-edge "24.11" [ ts1 nixld intel hw.lenovo-thinkpad-x1-7th-gen ];
bolle = mk "pbsds.net" "x86_64-linux" input-views.inputs-2505 "24.11" [ au ts2 intel ];
eple = mk "pbsds.net" "x86_64-linux" input-views.inputs-2505 "24.11" [ au ts1 tse dns64 intel rocm ];
garp = mk "pbsds.net" "x86_64-linux" input-views.inputs-2505 "24.11" [ au ts2 intel-novga cuda ];
# hasselknippe= mk "pbsds.net" "aarch64-linux" input-views.inputs-2405 "24.05" [ ts1 hw.pine64-pinebook-pro ];
#gomperud smattkuken skrytebiffen skalkesnerken balleby bingus skjrlaltatjlstad
#bergjlot snortheimsmoen ditlefsen skrukkerud podebusk zmaragd makrell alfnes blix urke pytte uddu imdorf rosenqvist
};
in
rec {
nixosModules = mkHosts (mkModule []);
nixosConfigurations = mkHosts (mkConfig []);
nixosReports = builtins.mapAttrs (key: self.lib.mkNixosConfigSummary) nixosConfigurations;
images = {};
/*
images = let
mk-nspawn-setup = hostname: # TODO: nspawn-tarball.nix populates /etc/nixos with junk
(pkgs.callPackage ./../pkgs/mk-nspawn-setup {})
(mkHosts (mkConfig [ "${nixos-nspawn}/nspawn-tarball.nix" ])).${hostname};
in {
asgaut-sd = (mkHosts (mkConfig [
"${nixos-hardware}/starfive/visionfive/v2/sd-image.nix"
{
nixpkgs.buildPlatform.system = system; # cross
sdImage.compressImage = false;
}
])).asgaut.config.system.build.sdImage;
#brumlebasse-nspawn-setup = mk-nspawn-setup "brumlebasse";
#brumlebasse-openstack = nixos-generators-2405.nixosGenerate {
# system = "x86_64-linux";
# specialArgs = { inherit inputs; };
# modules = [ (mkHosts (mkModule [])).brumlebasse ];
# format = "openstack";
#};
};
*/
}