summaryrefslogtreecommitdiff
path: root/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'default.nix')
-rw-r--r--default.nix93
1 files changed, 93 insertions, 0 deletions
diff --git a/default.nix b/default.nix
new file mode 100644
index 0000000..1d100d1
--- /dev/null
+++ b/default.nix
@@ -0,0 +1,93 @@
+{ system ? "x86_64-linux"
+, inputs ? import ./inputs.nix { inherit system; }
+}:
+
+let
+ inherit (inputs) sops-nix home-manager nixpkgs;
+
+ mkConfig = imports: config:
+ inputs.nixpkgs-flake.lib.nixosSystem rec {
+ system = "x86_64-linux";
+ modules = [ config ] ++ imports;
+ extraModules =
+ builtins.attrValues self.modules
+ ++ [ sops-nix ];
+ pkgs = nixpkgs;
+
+ specialArgs = {
+ inherit inputs system;
+ craneLib = inputs.crane.lib.${system};
+ };
+ };
+ mkDesktop = mkConfig [ ./common/desktop.nix ];
+ mkServer = mkConfig [
+ ./common/headless.nix
+ ];
+ deploy-vps = hostname: {
+ inherit hostname;
+ profiles.system = {
+ user = "root";
+ sshUser = "root";
+ path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos
+ self.nixosConfigurations.${hostname};
+ };
+ };
+
+ self = {
+
+ nixosConfigurations = {
+ chaski = mkServer ./chaski/configuration.nix;
+ flora = mkServer ./flora/configuration.nix;
+ abbenay = mkDesktop ./abbenay/configuration.nix;
+ cyberbox = mkDesktop ./cyberbox/configuration.nix;
+ ilex = mkDesktop ./ilex/configuration.nix;
+ };
+
+ deploy.nodes = {
+ chaski = deploy-vps "chaski";
+ flora = deploy-vps "flora";
+ parsons = {
+ hostname = "parsons";
+ profiles.home = {
+ user = "stuebinm";
+ sshUser = "stuebinm";
+ path = inputs.deploy-rs.lib.x86_64-linux.activate.home-manager
+ self.homeConfigurations.stuebinm-minimal;
+ };
+ };
+ abbenay = {
+ hostname = "abbenay";
+ profiles.system = {
+ user = "root";
+ sshUser = "stuebinm";
+ interactiveSudo = true;
+ path = inputs.deploy-rs.lib.x86_64-linux.activate.nixos
+ self.nixosConfigurations.abbenay;
+ };
+ };
+ };
+
+ homeConfigurations = let
+ home = root:
+ home-manager.lib.homeManagerConfiguration rec {
+ pkgs = nixpkgs;
+ modules = [ root ];
+ extraSpecialArgs = {
+ inherit inputs;
+ system = "x86_64-linux";
+ };
+ };
+ in {
+ stuebinm = home ./home/home.nix;
+ stuebinm-minimal = home ./home/home-minimal.nix;
+ };
+
+ home = self.homeConfigurations.stuebinm.activationPackage;
+ home-minimal = self.homeConfigurations.stuebinm-minimal.activationPackage;
+
+ modules = import ./modules;
+ packages = import ./pkgs { inherit nixpkgs; };
+ tests = import ./tests { inherit nixpkgs; };
+ };
+
+in self