2022-02-05 21:42:36 +02:00
|
|
|
{
|
|
|
|
description = "System and user config";
|
|
|
|
|
|
|
|
inputs = {
|
|
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
|
|
|
2022-02-22 19:29:06 +02:00
|
|
|
nix-super.url = "git+https://git.privatevoid.net/max/nix-super-fork";
|
|
|
|
nix-super.inputs.nixpkgs.follows = "nixpkgs";
|
2022-02-05 21:42:36 +02:00
|
|
|
|
|
|
|
home-manager.url = "github:nix-community/home-manager/master";
|
|
|
|
home-manager.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
|
|
|
nixos-hardware.url = "github:NixOS/nixos-hardware/master";
|
|
|
|
|
|
|
|
nix-crx.url = "git+https://git.privatevoid.net/max/nix-crx";
|
|
|
|
nix-crx.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
|
|
|
deploy-rs.url = "github:serokell/deploy-rs";
|
|
|
|
deploy-rs.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
deploy-rs.inputs.naersk.follows = "naersk";
|
|
|
|
|
|
|
|
# re-pin naersk to fix deprecation warning in deploy-rs
|
|
|
|
naersk.url = "github:nmattia/naersk/master";
|
|
|
|
naersk.inputs.nixpkgs.follows = "nixpkgs";
|
|
|
|
|
|
|
|
agenix.url = "github:ryantm/agenix";
|
|
|
|
agenix.inputs.nixpkgs.follows = "nixpkgs";
|
2022-03-01 23:48:07 +02:00
|
|
|
|
2022-03-05 01:19:58 +02:00
|
|
|
helix.url = "git+https://git.privatevoid.net/max/helix";
|
2022-03-01 23:48:07 +02:00
|
|
|
helix.inputs.nixpkgs.follows = "nixpkgs";
|
2022-02-05 21:42:36 +02:00
|
|
|
|
|
|
|
kernel-clr = { url = "github:clearlinux-pkgs/linux"; flake = false; };
|
2022-03-17 20:59:46 +02:00
|
|
|
|
|
|
|
dream2nix.url = "github:nix-community/dream2nix";
|
|
|
|
dream2nix.inputs.nixpkgs.follows = "nixpkgs";
|
2022-03-17 21:50:30 +02:00
|
|
|
|
2022-03-18 00:05:51 +02:00
|
|
|
shinobi = { url = "gitlab:Shinobi-Systems/Shinobi/dashboard-v3"; flake = false; };
|
2022-02-05 21:42:36 +02:00
|
|
|
};
|
|
|
|
outputs = { self, nixpkgs, home-manager, nixos-hardware, ... }@inputs:
|
|
|
|
let
|
|
|
|
inherit (nixpkgs) lib;
|
|
|
|
system = "x86_64-linux";
|
|
|
|
pkgs = import nixpkgs {
|
|
|
|
inherit system;
|
|
|
|
};
|
|
|
|
|
|
|
|
deploy-rs-lib = inputs.deploy-rs.lib.${system};
|
|
|
|
agenixModule = inputs.agenix.nixosModules.age;
|
|
|
|
|
|
|
|
aspect = import ./modules inputs;
|
|
|
|
hosts = import ./hosts;
|
|
|
|
specialArgs = { inherit inputs hosts aspect; };
|
|
|
|
|
|
|
|
mkNixOS' = lib: name: lib.nixosSystem {
|
|
|
|
inherit system;
|
|
|
|
inherit specialArgs;
|
|
|
|
modules = [ hosts."${name}".nixos ];
|
|
|
|
};
|
|
|
|
mkNixOS = mkNixOS' nixpkgs.lib;
|
|
|
|
in {
|
|
|
|
nixosModules = aspect.modules;
|
|
|
|
nixosConfigurations =
|
|
|
|
lib.genAttrs [ "TITAN" "jericho" ] mkNixOS;
|
|
|
|
|
|
|
|
deploy.nodes = with deploy-rs-lib; {
|
|
|
|
TITAN = {
|
|
|
|
hostname = "titan.hypr";
|
|
|
|
profiles.system = {
|
|
|
|
user = "root";
|
|
|
|
path = activate.nixos self.nixosConfigurations.TITAN;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
jericho = {
|
|
|
|
hostname = "jericho.hypr";
|
|
|
|
profiles.system = {
|
|
|
|
user = "root";
|
|
|
|
path = activate.nixos self.nixosConfigurations.jericho;
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
packages.${system} = import ./packages {
|
2022-03-17 21:02:48 +02:00
|
|
|
inherit inputs pkgs;
|
2022-02-05 21:42:36 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
defaultApp.${system} = {
|
|
|
|
type = "app";
|
|
|
|
program = self.packages.${system}.flake-installer.outPath;
|
|
|
|
};
|
|
|
|
|
|
|
|
hydraJobs = {
|
|
|
|
systems.${system} = lib.mapAttrs (_: x: x.config.system.build.toplevel) self.nixosConfigurations;
|
|
|
|
packages = self.packages;
|
|
|
|
};
|
|
|
|
|
|
|
|
homeConfigurations = {
|
|
|
|
max = inputs.home-manager.lib.homeManagerConfiguration {
|
|
|
|
inherit system;
|
|
|
|
homeDirectory = "/home/max";
|
|
|
|
username = "max";
|
|
|
|
configuration.imports = [ ./users/max/home.nix ];
|
|
|
|
extraSpecialArgs = { inherit inputs; };
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
}
|