Files
policy-ui/flake.nix
HaimKortovich 7d5e198156
All checks were successful
Build and Publish / build-release (push) Successful in 1m9s
add node extra certs
2026-04-29 16:56:06 -05:00

79 lines
2.0 KiB
Nix

{
description = "Policy UI - Nuxt.js application";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, nixpkgs, flake-utils, ... }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = nixpkgs.legacyPackages.${system};
nodePkgs = pkgs.nodePackages;
pname = "policy-ui";
version = "1.0.0";
src = ./.;
in
{
packages.policy-ui = pkgs.stdenv.mkDerivation {
inherit pname version src;
nativeBuildInputs = [
pkgs.pnpm
pkgs.pnpmConfigHook
pkgs.nodejs
];
pnpmDeps = pkgs.fetchPnpmDeps {
inherit pname version src;
pnpm = pkgs.pnpm;
fetcherVersion = 3;
# Placeholder hash - run nix build to get the correct hash
hash = "sha256-b9rYE09uEFLoiymS6PUkWJvOwMnniBbvPbFp6xu+PtM=";
};
env.NUXT_TELEMETRY_DISABLED = 1;
buildPhase = ''
pnpm build
'';
installPhase = ''
mkdir -p $out
cp -r .output/* $out
'';
};
packages.dockerImage = pkgs.dockerTools.buildLayeredImage {
name = "policy-ui";
contents = [
pkgs.nodejs
pkgs.cacert
self.packages.${system}.policy-ui
];
config = {
Cmd = [ "node" "/server/index.mjs" ];
Env = [
"NODE_ENV=production"
"PORT=3000"
"HOST=0.0.0.0"
"NUXT_TELEMETRY_DISABLED=1"
"NODE_EXTRA_CA_CERTS =/etc/ssl/certs/ca-certificates.crt"
];
};
};
packages.default = self.packages.${system}.policy-ui;
devShells.default = pkgs.mkShell {
buildInputs = with pkgs; [
nodejs
pnpm
kubernetes-helm
];
};
});
}