Rust nightly(strongly recommended to use rustup)
OpenSSL(should be available in path, install through your system's package manager or use the prebuilt binaries)
NodeJS(only when compiling the web-vault, install through your system's package manager or use the prebuilt binaries)
# Compile and run cargo run --release # or just compile (binary located in target/release/bitwarden_rs) cargo build --release
When run, the server is accessible in http://localhost:80.
Install the web-vault
A compiled version of the web vault can be downloaded from dani-garcia/bw_web_builds.
If you prefer to compile it manually, follow these steps:
Note: building the Vault needs ~1.5GB of RAM. On systems like a RaspberryPI with 1GB or less, please enable swapping or build it on a more powerful machine and copy the directory from there. This much memory is only needed for building it, running bitwarden_rs with vault needs only about 10MB of RAM.
- Clone the git repository at bitwarden/web and checkout the latest release tag (e.g. v2.1.1):
# clone the repository git clone https://github.com/bitwarden/web.git web-vault cd web-vault # switch to the latest tag git checkout "$(git tag | tail -n1)"
- Apply the patch file from
# In the Vault repository directory git apply /path/to/bitwarden_rs/docker/set-vault-baseurl.patch
- Then, build the Vault:
npm run sub:init npm install npm run dist
Finally copy the contents of the
build folder into the
The available configuration options are documented in the default
.env file, and they can be modified by uncommenting the desired options in that file or by setting their respective environment variables. Look at the README file for the main configuration options available.
Note: the environment variables override the values set in the
How to recreate database schemas (for developers)
Install diesel-cli with cargo:
cargo install diesel_cli --no-default-features --features sqlite-bundled
Make sure that the correct path to the database is in the
If you want to modify the schemas, create a new migration with:
diesel migration generate <name>
Modify the *.sql files, making sure that any changes are reverted in the down.sql file.
Apply the migrations and save the generated schemas as follows:
diesel migration redo # This step should be done automatically when using diesel-cli > 1.3.0 # diesel print-schema > src/db/schema.rs