Bitwarden Nginx



Bitwarden is an open-source password manager. Using Bitwarden_rs, it is possible to create a self-hosted server, using little resources, enabling you to use all its features.

  1. Bitwarden Nginx Reverse Proxy
  2. Bitwarden Nginx Config

Mar 12, 2021 NGINX will sit in front of our Raspberry Pi’s Bitwarden server and proxy the requests. Preparing NGINX on the Pi Before we can use Bitwarden, we are required to set up NGINX. Bitwarden recommends configuring a domain name with DNS records that point to your host machine (for example, bitwarden.example.com), especially if you are serving Bitwarden over the internet. Install Docker and Docker Compose. Bitwarden will be deployed and run on your machine using an array of Docker containers. Bitwarden can be run with any. Bitwarden App behind a nginx web server You’ll notice that there are two nginx servers in the setup above, one in the WordPress app and one in the Bitwarden app. The solution here, as I learned in the discussion linked to above, was putting the two nginx services on their own external Docker network and configuring Bitwarden properly.

Bitwarden makes it possible to share and sync usernames and passwords across all devices and webbrowsers.

In this example I’ll be using two pc’s: One for compiling and one for hosting, because the VPS I run this on isn’t powerful enough to compile the binaries.

On compile machine

Install dependencies

Compile bitwarden_rs

Compile vault

Clone and checkout repository

Patch web vault to work with Bitwarden RS

Download the most recent Bitwarden_RS patch for the Bitwarden web vault. This can be done using one of two ways:

A. Download and apply a patch based on the version that you just checked out using git.

B. Does this give a 404 Not Found error? In that case there might not be new changes in the most recent Bitwarden web release that need to be patched in order to work with Bitwarden RS.

  • Go to https://github.com/dani-garcia/bw_web_builds/tree/master/patches.
  • Click on the patch that is closest to the version you checked out in git (visible by executing the command git tag --sort=v:refname | tail -n1).
  • Click on “raw” to get a direct link to the patch file.
  • Download with wget and use git apply.
Nginx

Bitwarden Nginx Reverse Proxy

For example:

Build the web vault

NB: Do not run the following commands as root. Building the web vault will fail.

How to set up bitwarden

Copy

on remote host

Use this file as a template. Alter all uncommented variables to match your environment.

Add nginx vault.conf. The following config assumes that you have already installed and configured certbot / letsencrypt and retrieved a certificate. Office 2019 windows 7 pro.

Set up Fail2ban

If you are using Fail2Ban, you can add this configuration to keep out unwanted guests:

Set up logrotation

Over time, the Bitwarden_RS log file can grow to a significant size. Using logrotate, we can periodically rotate logs.

NB: To view a compressed log file without manually decompressing:

Backup

If you’d like to backup the bitwarden server, please use the following steps to do so

Export the sqlite database:

If you have already set up backups for other services, add these paths to your list of backup targets:

Upgrade Bitwarden RS and web vault

On build machine

Update system packages

Remove old build and sources

Upgrade Rust

Build Bitwarden RS

Build Bitwarden web vault

Clone Bitwarden web vault repository
Download the most recent Bitwarden_RS patch for the Bitwarden web vault
BitwardenFile

This can be done using one of two ways:

A. Download and apply a patch based on the version that you just checked out using git.

B. Does this give a 404 Not Found error? In that case there might not be new changes in the most recent Bitwarden web release that need to be patched in order to work with Bitwarden RS.

  • Go to https://github.com/dani-garcia/bw_web_builds/tree/master/patches.
  • Click on the patch that is closest to the version you checked out in git (visible by executing the command git tag --sort=v:refname | tail -n1).
  • Click on “raw” to get a direct link to the patch file.
  • Download with wget and use git apply.

For example:

Bitwarden Nginx Config

Bitwarden Nginx
Compile web vault

Copy upgraded binary and vault

On remote / public machine

Update notes

  • 2020-07: Improved web-vault instructions, added upgrade steps.
  • 2020-08: Noticed missing nginx config example. Added this.
  • 2020-09: Added some cleanup steps.
  • 2020-10: Updated to latest versions. Added new configuration options. Include MySQL and PostgreSQL backends next to the existing SQLite backend in compile steps.
  • 2020-12: Update to latest versions. Added logrotate config.
  • 2021-04: A reader notified me that the Bitwarden admin Fail2ban regex in /etc/fail2ban/filter.d/bitwarden-admin.conf should be updated. Bitwarden no longer prepends the log entry with “Unauthorized Error: “. This has been corrected.

Related