{ description = '' For questions just DM me on X: https://twitter.com/@m3tam3re There is also some NIXOS content on my YT channel: https://www.youtube.com/@m3tam3re One of the best ways to learn NIXOS is to read other peoples configurations. I have personally learned a lot from Gabriel Fontes configs: https://github.com/Misterio77/nix-starter-configs https://github.com/Misterio77/nix-config Please also check out the starter configs mentioned above. ''; inputs = { home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; nixpkgs-stable.url = "github:nixos/nixpkgs/nixos-24.05"; colmena.url = "github:zhaofengli/colmena"; agenix.url = "github:ryantm/agenix"; disko = { url = "github:nix-community/disko"; inputs.nixpkgs.follows = "nixpkgs"; }; dotfiles = { url = "git+https://code.m3tam3re.com/m3tam3re/dotfiles-flake-demo.git"; flake = false; }; }; outputs = { self, agenix, home-manager, nix-darwin, nixpkgs, nixpkgs-stable, ... } @ inputs: let inherit (self) outputs; 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}); overlays = import ./overlays {inherit inputs;}; homeManagerModules = import ./modules/home-manager; nixosConfigurations = { m3-kratos-vm = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; modules = [ ./hosts/m3-kratos inputs.disko.nixosModules.disko agenix.nixosModules.default ]; }; m3-hermes-hetzner = nixpkgs.lib.nixosSystem { specialArgs = {inherit inputs outputs;}; system = "x86_64-linux"; modules = [ ./hosts/m3-hermes inputs.disko.nixosModules.disko agenix.nixosModules.default ]; }; }; homeConfigurations = { "m3tam3re@m3-kratos-vm" = home-manager.lib.homeManagerConfiguration { pkgs = nixpkgs.legacyPackages."x86_64-linux"; extraSpecialArgs = {inherit inputs outputs;}; modules = [./home/m3tam3re/m3-kratos.nix]; }; }; colmena = { meta = { nixpkgs = import nixpkgs { system = "x86_64-linux"; }; specialArgs = {inherit inputs outputs;}; }; m3-kratos-vm = { deployment = { targetHost = "m3-kratos-vm"; targetUser = "m3tam3re"; tags = ["vm"]; }; imports = [ ./hosts/m3-kratos inputs.disko.nixosModules.disko agenix.nixosModules.default ]; }; }; }; }