1{
2 stdenv,
3 nodejs,
4 pnpm,
5 fetchFromGitHub,
6}:
7
8let
9 inherit (import ./sources.nix { inherit fetchFromGitHub; })
10 pname
11 version
12 src
13 pnpmDepsHash
14 ;
15in
16stdenv.mkDerivation (finalAttrs: {
17 pname = "${pname}-web";
18 inherit src version;
19
20 sourceRoot = "${finalAttrs.src.name}/web";
21
22 nativeBuildInputs = [
23 nodejs
24 pnpm.configHook
25 ];
26
27 pnpmDeps = pnpm.fetchDeps {
28 inherit (finalAttrs)
29 pname
30 version
31 src
32 sourceRoot
33 ;
34 fetcherVersion = 1;
35 hash = pnpmDepsHash;
36 };
37
38 postPatch = ''
39 substituteInPlace ./vite.config.ts \
40 --replace 'outDir: "../internal/server/public_html"' 'outDir: "dist"'
41 '';
42
43 postBuild = ''
44 pnpm run build
45 '';
46
47 installPhase = ''
48 runHook preInstall
49
50 mkdir -p $out/share
51 mv dist $out/share/authelia-web
52
53 runHook postInstall
54 '';
55})