{ description = "mqtt-webui"; inputs.nixpkgs.url = "github:NixOS/nixpkgs/nixos-22.11"; outputs = inputs: let forAllSystems = function: inputs.nixpkgs.lib.genAttrs [ "x86_64-linux" "aarch64-linux" "aarch64-darwin" ] (system: function (import inputs.nixpkgs { system = system; overlays = [ inputs.self.overlays.default ]; })); in { packages = forAllSystems (pkgs: { default = pkgs.mqtt-webui; mqtt-webui = pkgs.mqtt-webui; }); devShells = forAllSystems (pkgs: { default = pkgs.mkShell { nativeBuildInputs = [ pkgs.yarn pkgs.yarn2nix pkgs.caddy ]; shellHook = '' export NODE_OPTIONS=--openssl-legacy-provider alias serve="yarn build && caddy run" alias generate-config="nix-instantiate --eval -E 'builtins.toJSON(import ./config.nix)' | jq '. | fromjson' > config.json" ''; }; }); overlays.default = final: prev: { mqtt-webui = final.mkYarnPackage rec { name = "mqtt-webui"; src = inputs.self; packageJSON = ./package.json; yarnLock = ./yarn.lock; yarnNix = ./yarn.nix; doDist = false; buildPhase = '' export NODE_OPTIONS=--openssl-legacy-provider yarn build ''; installPhase = '' mkdir -p $out cp -r deps/mqtt-webui/www/. $out rm $out/manifest.json ''; }; }; }; }