Files
nix-config/pkgs/vaultwarden/webvault.nix
Jordan Holt 0c719603ec
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
pkgs/vaultwarden: init at git-a2ad1dc
2025-09-02 00:39:12 +01:00

84 lines
1.7 KiB
Nix

{
lib,
buildNpmPackage,
fetchFromGitHub,
nixosTests,
python3,
vaultwarden,
}:
let
version = "2025.8.0";
bw_web_builds = fetchFromGitHub {
owner = "dani-garcia";
repo = "bw_web_builds";
rev = "v${version}";
hash = "sha256-93acGKO3Fq81M1wKPvIynvkTFXPQXypcMb+c4aEtxJc=";
};
in
buildNpmPackage rec {
pname = "vaultwarden-webvault";
inherit version;
src = fetchFromGitHub {
owner = "vaultwarden";
repo = "vw_web_builds";
rev = bw_web_builds.rev;
hash = "sha256-u51EP4I+bUcTeMqfzx1gbZMxpjalt3bpK3QGp5QEpYU=";
};
npmDepsHash = "sha256-wi7ZDgGKXrtueLob5OVNKCpnzC00UW9zo8KwuoyL1Bo=";
postPatch = ''
ln -s ${bw_web_builds}/{patches,resources} ..
'';
nativeBuildInputs = [
python3
];
makeCacheWritable = true;
env = {
ELECTRON_SKIP_BINARY_DOWNLOAD = "1";
npm_config_build_from_source = "true";
};
npmRebuildFlags = [
# FIXME one of the esbuild versions fails to download @esbuild/linux-x64
"--ignore-scripts"
];
npmBuildScript = "dist:oss:selfhost";
npmBuildFlags = [
"--workspace"
"apps/web"
];
npmFlags = [ "--legacy-peer-deps" ];
installPhase = ''
runHook preInstall
mkdir -p $out/share/vaultwarden
mv apps/web/build $out/share/vaultwarden/vault
runHook postInstall
'';
passthru = {
inherit bw_web_builds;
tests = nixosTests.vaultwarden;
};
meta = with lib; {
description = "Integrates the web vault into vaultwarden";
homepage = "https://github.com/dani-garcia/bw_web_builds";
changelog = "https://github.com/dani-garcia/bw_web_builds/releases/tag/v${version}";
platforms = platforms.all;
license = licenses.gpl3Plus;
inherit (vaultwarden.meta) maintainers;
};
}