Self-Hosting Bitwarden without SMTP

Bitwarden provides docker images to self-host an open-source version of the Bitwarden server. After recent updates to the Bitwarden client which broke compatiblity with rubywarden the official image is a viable option despite requiring mssql.

However, to unlock Premium features the self-hosted version must have a "verified" e-mail address. Unfortunately, this requires setting up an SMTP relay or taking the self-hosted server onto the internet.

Fortunately, the "verification" is just a bit in the MSSQL tables, which can be trivially set without the need to click a verification e-mail link!

  1. Find the unique password for the bitwarden mssql server
$ cat bwdata/env/mssql.override.env 
  1. Launch a shell in the mssql server docker container
sudo docker exec -it bitwarden-mssql /bin/bash
  1. Launch the mssql client
root@5223f3f519cc:/opt/mssql-tools/bin# ./sqlcmd -S -U sa -P <key>
  1. Find the user who needs verified
USE master
SELECT Name, Email, EmailVerified FROM [User]
  1. Update the EmailVerified field
UPDATE [User] SET EmailVerified = 1 WHERE [User].Name="<Name>"
  1. Wait a few minutes and then refresh the web interface

Did your security posture improve because of this post? Consider saying thanks by using my Amazon Affilliate URL and help to keep this site ad & analytics free.