In this tutorial, you will learn how to install Bitwarden password manager on Ubuntu 20.04. Bitwarden is an “open-source password manager which provides an easiest and safest way for individuals to store, share and secure sensitive data”. Bitwarden is available for individual and organizational use in both free and paid plans. In this tutorial, we will be learning how to install and setup free version of Bitwarden on Ubuntu 20.04 for individual use.
Install Bitwarden Password Manager on Ubuntu 20.04
In order to install Bitwarden on Ubuntu 20.04;
Before you can install Bitwarden password manager on Ubuntu 20.04, below are the minimum recommended system reqiuirements that your system should meet;
- Processor: x64, 2 GHz dual core
- Memory: 4 GB RAM (system memory)
- Storage: 25 GB
- Docker: Engine 19+ and Compose 1.24+
Ensure that your system package cache is up-to-date.
Bitwarden requires a system domain name while being installed. Therefore, set your system FQDN as follows. Be sure to replace the domain accordingly.
hostnamectl set-hostname bitwarden.kifarunix-demo.com
Bitwarden is deployed using Docker containers through the use of Docker compose. In this tutorial, we are using the community Docker edition. Follow the links below to install both Docker and Docker compose on Ubuntu 20.04.
Once the above procedures are done, you can now install Bitwarden password manager.
Navigate to Bitwarden hosting page and provide your email ID to get the hosting installation ID and key.
Once you enter your email ID, click submit. Such a page is loaded.
Keep the installation ID and Key as we will need it later in the installation.
Run the command below to download the Bitwarden installation script.
apt install curl
curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh
Make the script executable;
chmod +x bitwarden.sh
Next, install Bitwarden password manager;
Enter your system hostname;
_ _ _ _ | |__ (_) |___ ____ _ _ __ __| | ___ _ __ | '_ \| | __\ \ /\ / / _` | '__/ _` |/ _ \ '_ \ | |_) | | |_ \ V V / (_| | | | (_| | __/ | | | |_.__/|_|\__| \_/\_/ \__,_|_| \__,_|\___|_| |_| Open source password management solutions Copyright 2015-2020, 8bit Solutions LLC https://bitwarden.com, https://github.com/bitwarden =================================================== Docker version 19.03.12, build 48a66213fe docker-compose version 1.27.2, build 18f557f9 (!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): bitwarden.kifarunix-demo.com
Choose whether you want to use Let’s Encrypt to generate a free SSL certificate. In our case, this is a local setup and hence, we chose no.
(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): n
The script will then proceed to pull Bitwarden containers.
Once the container download is done, you are prompted to enter the hosting installation id and key you obtained from the Bitwarden hosting page.
... Digest: sha256:d53aa2bc97c9bfdb5609cf9ec7cbee8cfedac536a7b101e039db2e0d733c60e0 Status: Downloaded newer image for bitwarden/setup:1.37.0 docker.io/bitwarden/setup:1.37.0 (!) Enter your installation id (get at https://bitwarden.com/host): 23b..............................2fb40d (!) Enter your installation key: 6trsD........................g85
Next, if you have an SSL certificate, say yes otherwise, say no and generate self signed one;
... (!) Do you have a SSL certificate to use? (y/n): n (!) Do you want to generate a self-signed SSL certificate? (y/n): y
The self signed SSL cert is generated with such a warning;
!!!!!!!!!! WARNING !!!!!!!!!! You are using an untrusted SSL certificate. This certificate will not be trusted by Bitwarden client applications. You must add this certificate to the trusted store on each device or else you will receive errors when trying to connect to your installation.
And the installation of Bitwarden on Ubuntu 20.04 is now done;
Building nginx config. Building docker environment files. Building docker environment override files. Building FIDO U2F app id. Building docker-compose.yml. Installation complete If you need to make additional configuration changes, you can modify the settings in `./bwdata/config.yml` and then run: `./bitwarden.sh rebuild` or `./bitwarden.sh update` Next steps, run: `./bitwarden.sh start`
You can now start Bitwarden Docker containers;
... Creating bitwarden-web ... done Creating bitwarden-icons ... done Creating bitwarden-events ... done Creating bitwarden-attachments ... done Creating bitwarden-api ... done Creating bitwarden-identity ... done Creating bitwarden-sso ... done Creating bitwarden-notifications ... done Creating bitwarden-mssql ... done Creating bitwarden-admin ... done Creating bitwarden-portal ... done Creating bitwarden-nginx ... done 1.37.0: Pulling from bitwarden/setup Digest: sha256:d53aa2bc97c9bfdb5609cf9ec7cbee8cfedac536a7b101e039db2e0d733c60e0 Status: Image is up to date for bitwarden/setup:1.37.0 docker.io/bitwarden/setup:1.37.0 Bitwarden is up and running! =================================================== visit https://bitwarden.kifarunix-demo.com to update, run `./bitwarden.sh updateself` and then `./bitwarden.sh update`
You can now check Bitwarden containers;
Accessing Bitwarden Web Interface
The installation of Bitwarden is now complete. You can access the web interface using the
https://bitwarden-server-fqdn. Replace the
bitwarden-server-fqdn with your system fully qualified domain name.
Ensure that from the workstation you are accessing Bitwarden from can resolve the Bitwarden hostname. Otherwise use the hosts file if you do not have DNS.
Create a new account to access your Bitwarden secure vault by clicking Create Account.
Once you have created an account, login to your Bitwarden vault.
In order to verify Self-hosted Bitwarden email, we are going to use local Postfix relay via Gmail SMTP. Therefore, install and configure Postfix to use Gmail SMTP relay by following the guide below;
Next, configure Postfix to allow Bitwarden docker containers to sent emails through it. How I did this, i just greped the docker IP addresses;
ip add | grep 172.
inet 172.17.0.1/16 brd 172.17.255.255 scope global docker0 inet 172.28.0.1/16 brd 172.28.255.255 scope global br-a8c84f91fe15 inet 172.29.0.1/16 brd 172.29.255.255 scope global br-d5da6fd7075c
Then, edit postfix main conf and add the Bitwarden docker container networks to mynetworks variable.
... mydestination = $myhostname, bitwarden.kifarunix-demo.com, localhost.kifarunix-demo.com, , localhost relayhost = [smtp.gmail.com]:587 mynetworks = 127.0.0.0/8 172.17.0.0/16 172.28.0.0/16 172.29.0.0/16 [::ffff:127.0.0.0]/104 [::1]/128 mailbox_size_limit = 0 recipient_delimiter = + ...
systemctl restart postfix
Next, configure Postfix SMTP mail server IP address and Port settings by editing the environment settings file,
In our setup, we are using Postfix on the localhost, hence only the lines, highlighted we used.
... [email protected]demo.com globalSettings__mail__smtp__host=192.168.57.3 globalSettings__mail__smtp__port=25 globalSettings__mail__smtp__ssl=false globalSettings__mail__smtp__username=REPLACE globalSettings__mail__smtp__password=REPLACE ....
Save and exit the file.
You should now be able to sent the verification mail.
Check your inbox and do the account verification.
Once you have verified the email, the verify email notification on the dashboard should now be gone.
And that is how easy it is to install Bitwarden password manager on Ubuntu 20.04. You can now safely store your passwords in your safe vault. Enjoy.