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; |     config.allowUnfree = true; | ||||||
|     overlays = [ |     overlays = [ | ||||||
|       inputs.agenix.overlays.default |       inputs.agenix.overlays.default | ||||||
|       (import ../overlays/default.nix) |  | ||||||
|       (final: prev: { |       (final: prev: { | ||||||
|         unstable = import inputs.nixpkgs-unstable { |         unstable = import inputs.nixpkgs-unstable { | ||||||
|           config = { |           config = { | ||||||
| @@ -33,6 +32,7 @@ | |||||||
|           system = final.system; |           system = final.system; | ||||||
|         }; |         }; | ||||||
|       }) |       }) | ||||||
|  |       (import ../overlays/default.nix) | ||||||
|     ]; |     ]; | ||||||
|   }; |   }; | ||||||
|  |  | ||||||
|   | |||||||
| @@ -31,6 +31,8 @@ lib.mapAttrs ( | |||||||
|     else |     else | ||||||
|       # Namespaced package sets in regular attrsets. |       # Namespaced package sets in regular attrsets. | ||||||
|       prev.${name} // value |       prev.${name} // value | ||||||
|  |   else if name == "vaultwarden" then | ||||||
|  |     final.callPackage value { rustPlatform = final.unstable.rustPlatform; } | ||||||
|   else |   else | ||||||
|     final.callPackage value { } |     final.callPackage value { } | ||||||
| ) pkgs | ) 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