pkgs/vaultwarden: init at git-a2ad1dc
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
All checks were successful
Check flake / build-amd64-linux (push) Successful in 1m24s
This commit is contained in:
@@ -24,7 +24,6 @@
|
||||
config.allowUnfree = true;
|
||||
overlays = [
|
||||
inputs.agenix.overlays.default
|
||||
(import ../overlays/default.nix)
|
||||
(final: prev: {
|
||||
unstable = import inputs.nixpkgs-unstable {
|
||||
config = {
|
||||
@@ -33,6 +32,7 @@
|
||||
system = final.system;
|
||||
};
|
||||
})
|
||||
(import ../overlays/default.nix)
|
||||
];
|
||||
};
|
||||
|
||||
|
@@ -31,6 +31,8 @@ lib.mapAttrs (
|
||||
else
|
||||
# Namespaced package sets in regular attrsets.
|
||||
prev.${name} // value
|
||||
else if name == "vaultwarden" then
|
||||
final.callPackage value { rustPlatform = final.unstable.rustPlatform; }
|
||||
else
|
||||
final.callPackage value { }
|
||||
) pkgs
|
||||
|
65
pkgs/vaultwarden/package.nix
Normal file
65
pkgs/vaultwarden/package.nix
Normal file
@@ -0,0 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
stdenv,
|
||||
callPackage,
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
nixosTests,
|
||||
pkg-config,
|
||||
openssl,
|
||||
libiconv,
|
||||
dbBackend ? "sqlite",
|
||||
libmysqlclient,
|
||||
libpq,
|
||||
}:
|
||||
|
||||
let
|
||||
webvault = callPackage ./webvault.nix { };
|
||||
in
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "vaultwarden";
|
||||
version = "git-" + builtins.substring 0 7 src.rev;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dani-garcia";
|
||||
repo = "vaultwarden";
|
||||
rev = "a2ad1dc7c3d28834749d4b14206838d795236c27";
|
||||
sha256 = "sha256-6Qmp/Uv8hdKuL9e3tPMKgNq1ZdvRQbzM65ifmS2Z3UY=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-F7we9rurJ7srz54lsuSrdoIZpkGE+4ncW3+wjEwaD7M=";
|
||||
|
||||
# used for "Server Installed" version in admin panel
|
||||
env.VW_VERSION = version;
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [
|
||||
openssl
|
||||
]
|
||||
++ lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
libiconv
|
||||
]
|
||||
++ lib.optional (dbBackend == "mysql") libmysqlclient
|
||||
++ lib.optional (dbBackend == "postgresql") libpq;
|
||||
|
||||
buildFeatures = dbBackend;
|
||||
|
||||
passthru = {
|
||||
inherit webvault;
|
||||
tests = nixosTests.vaultwarden;
|
||||
updateScript = callPackage ./update.nix { };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Unofficial Bitwarden compatible server written in Rust";
|
||||
homepage = "https://github.com/dani-garcia/vaultwarden";
|
||||
changelog = "https://github.com/dani-garcia/vaultwarden/releases/tag/${version}";
|
||||
license = licenses.agpl3Only;
|
||||
maintainers = with maintainers; [
|
||||
dotlambda
|
||||
SuperSandro2000
|
||||
];
|
||||
mainProgram = "vaultwarden";
|
||||
};
|
||||
}
|
83
pkgs/vaultwarden/webvault.nix
Normal file
83
pkgs/vaultwarden/webvault.nix
Normal file
@@ -0,0 +1,83 @@
|
||||
{
|
||||
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;
|
||||
};
|
||||
}
|
Reference in New Issue
Block a user