{ description = "nipsy's NixOS configurations"; inputs = { disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; home-manager-stable = { url = "github:nix-community/home-manager/release-24.05"; inputs.nixpkgs.follows = "nixpkgs-stable"; }; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixos-hardware.url = "github:nixos/nixos-hardware"; # per https://nixos-and-flakes.thiscute.world/nixos-with-flakes/downgrade-or-upgrade-packages #nixpkgs-67e692392.url = "github:nixos/nixpkgs/67e69239226f37168d1adb8d29bd61150756a03e"; nixpkgs-master.url = "github:nixos/nixpkgs"; #nixpkgs-pr363651.url = "github:SuperSandro2000/nixpkgs/openstack-socks"; nixpkgs-stable.url = "github:nixos/nixpkgs/release-24.05"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nvidia-patch = { url = "github:icewind1991/nvidia-patch-nixos"; inputs.nixpkgs.follows = "nixpkgs"; }; sops-nix = { url = "github:Mic92/sops-nix"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = { disko, home-manager-stable, home-manager, nixos-hardware, nixpkgs-master, nixpkgs-stable, nixpkgs, nvidia-patch, self, sops-nix, ... } @ inputs: let inherit (self) outputs; systems = [ #"aarch64-linux" #"i686-linux" "x86_64-linux" #"aarch64-darwin" #"x86_64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs systems; in { nixosConfigurations = { arrakis = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/arrakis home-manager.nixosModules.home-manager { home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/arrakis.nix; home-manager.users.nipsy = import ./home/nipsy/arrakis.nix; } sops-nix.nixosModules.sops ]; }; darkstar = nixpkgs.lib.nixosSystem { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/darkstar home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/darkstar.nix; home-manager.users.nipsy = import ./home/nipsy/darkstar.nix; } sops-nix.nixosModules.sops ]; }; ginaz = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/ginaz home-manager.nixosModules.home-manager { home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/ginaz.nix; home-manager.users.nipsy = import ./home/nipsy/ginaz.nix; } nixos-hardware.nixosModules.lenovo-yoga-7-14ARH7-amdgpu sops-nix.nixosModules.sops ]; }; # from https://nixos.wiki/wiki/Creating_a_NixOS_live_CD and https://chengeric.com/homelab/ iso = nixpkgs.lib.nixosSystem { modules = [ "${nixpkgs}/nixos/modules/installer/cd-dvd/installation-cd-minimal.nix" ({ #isoImage.squashfsCompression = "gzip -Xcompression-level 1"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; users.users = { nixos.openssh.authorizedKeys.keys = [ (builtins.readFile ./hosts/common/users/nipsy/keys/id_arrakis.pub) ]; root.openssh.authorizedKeys.keys = [ (builtins.readFile ./hosts/common/users/nipsy/keys/id_arrakis.pub) ]; }; }) ]; system = "x86_64-linux"; }; kaitain = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/kaitain home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/kaitain.nix; home-manager.users.nipsy = import ./home/nipsy/kaitain.nix; } sops-nix.nixosModules.sops ]; }; jupiter = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/jupiter home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/jupiter.nix; home-manager.users.nipsy = import ./home/nipsy/jupiter.nix; } #sops-nix.nixosModules.sops ]; }; neptune = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/neptune home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/neptune.nix; home-manager.users.nipsy = import ./home/nipsy/neptune.nix; } #sops-nix.nixosModules.sops ]; }; netboot = nixpkgs.lib.nixosSystem { modules = [ "${nixpkgs}/nixos/modules/installer/netboot/netboot-minimal.nix" ({ #isoImage.squashfsCompression = "gzip -Xcompression-level 1"; nix.settings.experimental-features = [ "nix-command" "flakes" ]; users.users = { nixos.openssh.authorizedKeys.keys = [ (builtins.readFile ./hosts/common/users/nipsy/keys/id_arrakis.pub) ]; root.openssh.authorizedKeys.keys = [ (builtins.readFile ./hosts/common/users/nipsy/keys/id_arrakis.pub) ]; }; }) ]; system = "x86_64-linux"; }; richese = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/richese home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/richese.nix; home-manager.users.nipsy = import ./home/nipsy/richese.nix; } sops-nix.nixosModules.sops ]; }; saturn = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/saturn home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/saturn.nix; home-manager.users.nipsy = import ./home/nipsy/saturn.nix; } #sops-nix.nixosModules.sops ]; }; uranus = nixpkgs.lib.nixosSystem rec { specialArgs = { inherit inputs outputs; }; modules = [ disko.nixosModules.disko ./hosts/uranus home-manager.nixosModules.home-manager { #home-manager.sharedModules = [ sops-nix.homeManagerModules.sops ]; home-manager.users.root = import ./home/root/uranus.nix; home-manager.users.nipsy = import ./home/nipsy/uranus.nix; } #sops-nix.nixosModules.sops ]; }; }; overlays = import ./overlays {inherit inputs;}; packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); }; }