{ description = '' This i my basic NixOS system configuration. Feel free to reuse anything you find useful. ''; inputs = { home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; agenix.url = "github:ryantm/agenix"; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-23.11"; fh.url = "https://flakehub.com/f/DeterminateSystems/fh/*.tar.gz"; deploy-rs.url = "github:serokell/deploy-rs"; dotfiles.url = "git+https://code.m3tam3re.com/m3tam3re/dotfiles.git"; dotfiles.flake = false; # Use this if your dotfiles repo is not a flake }; outputs = { self, dotfiles, nixpkgs, fh, home-manager, agenix, deploy-rs, ... } @ inputs: let inherit (self) outputs; lib = nixpkgs.lib; systems = [ "aarch64-linux" "i686-linux" "x86_64-linux" "aarch64-darwin" "x86_64-darwin" ]; forAllSystems = nixpkgs.lib.genAttrs systems; in { packages = forAllSystems (system: import ./pkgs nixpkgs.legacyPackages.${system}); formatter = forAllSystems (system: nixpkgs.legacyPackages.${system}.alejandra); overlays = import ./overlays {inherit inputs;}; nixosConfigurations = { lkk-nix-1 = lib.nixosSystem rec { specialArgs = {inherit inputs outputs;}; modules = [./hosts/lkk-nix-1 agenix.nixosModules.default]; }; m3-r1 = lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [./hosts/m3-r1 agenix.nixosModules.default]; }; lkk-prod-1 = lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [./hosts/lkk-prod-1 agenix.nixosModules.default]; }; lkk-prod-2 = lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [./hosts/lkk-prod-2 agenix.nixosModules.default]; }; m3-nix = lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [./hosts/m3-nix agenix.nixosModules.default]; }; }; homeConfigurations = { # Laptop "m3tam3re@m3-nix" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = {inherit inputs outputs;}; modules = [./home/users/m3tam3re/m3-nix.nix]; }; "m3tam3re@lkk-nix-1" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = { # pass things to t }; modules = [./home/users/m3tam3re/lkk-nix-1.nix]; }; "m3tam3re@m3-r1" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = { # pass things to t }; modules = [./home/users/m3tam3re/m3-r1.nix]; }; }; deploy.nodes.lkk-nix-1 = { hostname = "lkk-nix-1"; sshUser = "root"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.lkk-nix-1; }; }; deploy.nodes.m3-r1 = { hostname = "m3-r1"; sshUser = "root"; activationTimeout = 600; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.m3-r1; }; }; deploy.nodes.lkk-prod-1 = { hostname = "lkk-prod-1"; sshUser = "root"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.lkk-prod-1; }; }; deploy.nodes.lkk-prod-2 = { hostname = "lkk-prod-2"; sshUser = "root"; profiles.system = { user = "root"; path = deploy-rs.lib.x86_64-linux.activate.nixos self.nixosConfigurations.lkk-prod-2; }; }; deploy.remoteBuild = true; }; }