{ description = "AZ Phishboard - Next.js phishing simulation dashboard"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-26.05"; }; outputs = { self, nixpkgs, }: let systems = [ "aarch64-linux" "x86_64-linux" ]; forAllSystems = nixpkgs.lib.genAttrs systems; in { nixosModules.default = import ./nixos/module.nix; packages = forAllSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = pkgs.buildNpmPackage { pname = "phishboard"; version = "0.1.0"; src = self; nodejs = pkgs.nodejs_22; npmDepsHash = "sha256-4BheNdfPgXQFjAiaRyxMpmhCk/H6puSPxjxh+PY2ljA="; NEXT_TELEMETRY_DISABLED = "1"; installPhase = '' runHook preInstall mkdir -p $out cp -r .next/standalone/. $out/ mkdir -p $out/.next cp -r .next/static $out/.next/static if [ -d public ]; then cp -r public $out/public fi runHook postInstall ''; meta = with pkgs.lib; { description = "AZ Phishboard Next.js dashboard"; homepage = "https://pb.l.az-gruppe.com"; platforms = platforms.linux; }; }; }); devShells = forAllSystems (system: let pkgs = nixpkgs.legacyPackages.${system}; in { default = pkgs.mkShell { packages = with pkgs; [ nodejs_22 typescript ]; shellHook = '' echo "Phishboard development environment" echo "Node: $(node --version)" echo "npm: $(npm --version)" ''; }; }); }; }