diff --git a/flake.nix b/flake.nix index b3a056a..8ef5558 100644 --- a/flake.nix +++ b/flake.nix @@ -2,161 +2,140 @@ description = "A highly structured configuration database."; nixConfig.extra-experimental-features = "nix-command flakes ca-references"; - nixConfig.extra-substituters = "https://nrdxp.cachix.org https://nix-community.cachix.org"; - nixConfig.extra-trusted-public-keys = "nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; + nixConfig.extra-substituters = + "https://nrdxp.cachix.org https://nix-community.cachix.org"; + nixConfig.extra-trusted-public-keys = + "nrdxp.cachix.org-1:Fc5PSqY2Jm1TrWfm88l6cvGWwz3s93c6IOifQWnhNW4= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs="; - inputs = - { - nixos.url = "github:nixos/nixpkgs/release-21.05"; - latest.url = "github:nixos/nixpkgs/nixos-unstable"; + inputs = { + nixos.url = "github:nixos/nixpkgs/release-21.05"; + latest.url = "github:nixos/nixpkgs/nixos-unstable"; - digga.url = "github:divnix/digga"; - digga.inputs.nixpkgs.follows = "nixos"; - digga.inputs.nixlib.follows = "nixos"; - digga.inputs.home-manager.follows = "home"; + digga.url = "github:divnix/digga"; + digga.inputs.nixpkgs.follows = "nixos"; + digga.inputs.nixlib.follows = "nixos"; + digga.inputs.home-manager.follows = "home"; - bud.url = "github:divnix/bud"; - bud.inputs.nixpkgs.follows = "nixos"; - bud.inputs.devshell.follows = "digga/devshell"; + bud.url = "github:divnix/bud"; + bud.inputs.nixpkgs.follows = "nixos"; + bud.inputs.devshell.follows = "digga/devshell"; - home.url = "github:nix-community/home-manager/release-21.05"; - home.inputs.nixpkgs.follows = "nixos"; + home.url = "github:nix-community/home-manager/release-21.05"; + home.inputs.nixpkgs.follows = "nixos"; - darwin.url = "github:LnL7/nix-darwin"; - darwin.inputs.nixpkgs.follows = "latest"; + darwin.url = "github:LnL7/nix-darwin"; + darwin.inputs.nixpkgs.follows = "latest"; - deploy.follows = "digga/deploy"; + deploy.follows = "digga/deploy"; - agenix.url = "github:ryantm/agenix"; - agenix.inputs.nixpkgs.follows = "latest"; + agenix.url = "github:ryantm/agenix"; + agenix.inputs.nixpkgs.follows = "latest"; - nvfetcher.url = "github:berberman/nvfetcher"; - nvfetcher.inputs.nixpkgs.follows = "latest"; - nvfetcher.inputs.flake-compat.follows = "digga/deploy/flake-compat"; - nvfetcher.inputs.flake-utils.follows = "digga/flake-utils-plus/flake-utils"; + nvfetcher.url = "github:berberman/nvfetcher"; + nvfetcher.inputs.nixpkgs.follows = "latest"; + nvfetcher.inputs.flake-compat.follows = "digga/deploy/flake-compat"; + nvfetcher.inputs.flake-utils.follows = "digga/flake-utils-plus/flake-utils"; - naersk.url = "github:nmattia/naersk"; - naersk.inputs.nixpkgs.follows = "latest"; + naersk.url = "github:nmattia/naersk"; + naersk.inputs.nixpkgs.follows = "latest"; - nixos-hardware.url = "github:nixos/nixos-hardware"; + nixos-hardware.url = "github:nixos/nixos-hardware"; - # start ANTI CORRUPTION LAYER - # remove after https://github.com/NixOS/nix/pull/4641 - nixpkgs.follows = "nixos"; - nixlib.follows = "digga/nixlib"; - blank.follows = "digga/blank"; - flake-utils-plus.follows = "digga/flake-utils-plus"; - flake-utils.follows = "digga/flake-utils"; - # end ANTI CORRUPTION LAYER - }; + # start ANTI CORRUPTION LAYER + # remove after https://github.com/NixOS/nix/pull/4641 + nixpkgs.follows = "nixos"; + nixlib.follows = "digga/nixlib"; + blank.follows = "digga/blank"; + flake-utils-plus.follows = "digga/flake-utils-plus"; + flake-utils.follows = "digga/flake-utils"; + # end ANTI CORRUPTION LAYER + }; - outputs = - { self - , digga - , bud - , nixos - , home - , nixos-hardware - , nur - , agenix - , nvfetcher - , deploy - , ... - } @ inputs: - digga.lib.mkFlake - { - inherit self inputs; + outputs = { self, digga, bud, nixos, home, nixos-hardware, nur, agenix + , nvfetcher, deploy, ... }@inputs: + digga.lib.mkFlake { + inherit self inputs; - channelsConfig = { allowUnfree = true; }; - - channels = { - nixos = { - imports = [ (digga.lib.importOverlays ./overlays) ]; - overlays = [ - digga.overlays.patchedNix - nur.overlay - agenix.overlay - nvfetcher.overlay - deploy.overlay - ./pkgs/default.nix - ]; - }; - latest = { }; - }; - - lib = import ./lib { lib = digga.lib // nixos.lib; }; - - sharedOverlays = [ - (final: prev: { - __dontExport = true; - lib = prev.lib.extend (lfinal: lprev: { - our = self.lib; - }); - }) - ]; + channelsConfig = { allowUnfree = true; }; + channels = { nixos = { - hostDefaults = { - system = "x86_64-linux"; - channelName = "nixos"; - imports = [ (digga.lib.importModules ./modules) ]; - externalModules = [ - { lib.our = self.lib; } - digga.nixosModules.bootstrapIso - digga.nixosModules.nixConfig - home.nixosModules.home-manager - agenix.nixosModules.age - bud.nixosModules.bud - ]; - }; + imports = [ (digga.lib.importOverlays ./overlays) ]; + overlays = [ + digga.overlays.patchedNix + nur.overlay + agenix.overlay + nvfetcher.overlay + deploy.overlay + ./pkgs/default.nix + ]; + }; + latest = { }; + }; - imports = [ (digga.lib.importHosts ./hosts) ]; - hosts = { - /* set host specific properties here */ - NixOS = { }; - }; - importables = rec { - profiles = digga.lib.rakeLeaves ./profiles // { - users = digga.lib.rakeLeaves ./users; - }; - suites = with profiles; rec { - base = [ core users.nixos users.root ]; - }; - }; + lib = import ./lib { lib = digga.lib // nixos.lib; }; + + sharedOverlays = [ + (final: prev: { + __dontExport = true; + lib = prev.lib.extend (lfinal: lprev: { our = self.lib; }); + }) + ]; + + nixos = { + hostDefaults = { + system = "x86_64-linux"; + channelName = "latest"; + imports = [ (digga.lib.importModules ./modules) ]; + externalModules = [ + { lib.our = self.lib; } + digga.nixosModules.bootstrapIso + digga.nixosModules.nixConfig + home.nixosModules.home-manager + agenix.nixosModules.age + bud.nixosModules.bud + ]; }; - home = { - imports = [ (digga.lib.importModules ./users/modules) ]; - externalModules = [ ]; - importables = rec { - profiles = digga.lib.rakeLeaves ./users/profiles; - suites = with profiles; rec { - base = [ direnv git ]; - }; + imports = [ (digga.lib.importHosts ./hosts) ]; + hosts = { + # set host specific properties here + NixOS = { }; + }; + importables = rec { + profiles = digga.lib.rakeLeaves ./profiles // { + users = digga.lib.rakeLeaves ./users; }; - users = { - nixos = { suites, ... }: { imports = suites.base; }; - }; # digga.lib.importers.rakeLeaves ./users/hm; + suites = with profiles; rec { + base = [ core users.nixos users.root ]; + }; + }; + }; + + home = { + imports = [ (digga.lib.importModules ./users/modules) ]; + externalModules = [ ]; + importables = rec { + profiles = digga.lib.rakeLeaves ./users/profiles; + suites = with profiles; rec { base = [ direnv git ]; }; }; users = { infinidoge = { suites, ... }: { imports = suites.base; }; }; # digga.lib.importers.rakeLeaves ./users/hm; }; - devshell = ./shell; + devshell = ./shell; - homeConfigurations = digga.lib.mkHomeConfigurations self.nixosConfigurations; + homeConfigurations = + digga.lib.mkHomeConfigurations self.nixosConfigurations; - deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; + deploy.nodes = digga.lib.mkDeployNodes self.nixosConfigurations { }; - defaultTemplate = self.templates.bud; - templates.bud.path = ./.; - templates.bud.description = "bud template"; + defaultTemplate = self.templates.bud; + templates.bud.path = ./.; + templates.bud.description = "bud template"; - } - // - { + } // { budModules = { devos = import ./bud; }; - } - ; + }; } diff --git a/hosts/bootstrap.nix b/hosts/bootstrap.nix index ddc912f..3852aef 100644 --- a/hosts/bootstrap.nix +++ b/hosts/bootstrap.nix @@ -1,5 +1,4 @@ -{ profiles, ... }: -{ +{ profiles, ... }: { # build with: `bud build bootstrap bootstrapIso` # reachable on the local link via ssh root@fe80::47%eno1 # where 'eno1' is replaced by your own machine's network