{ description = "Systant - System monitoring agent with MQTT and Home Assistant integration"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; inputs.flake-utils.url = "github:numtide/flake-utils"; outputs = { self, nixpkgs, flake-utils, ... }: { # Home Manager module (system-independent) homeManagerModules.default = import ./nix/nixos-module.nix; # Overlay to add systant to pkgs overlays.default = final: prev: { systant = final.callPackage ./nix/package.nix { src = self; }; }; } // flake-utils.lib.eachDefaultSystem ( system: let pkgs = import nixpkgs { inherit system; config.allowUnfree = true; overlays = [ self.overlays.default ]; }; in { packages = { systant = pkgs.systant; default = pkgs.systant; }; apps.default = { type = "app"; program = "${pkgs.systant}/bin/systant"; }; devShells.default = pkgs.mkShell { buildInputs = with pkgs; [ bashInteractive glibcLocales git bun inotify-tools ]; shellHook = '' export PROJECT_ROOT=$PWD ''; }; } ); }