Bitwarden

A quick guide that condenses the Linux Standard Deployment instructions

Install Docker

Follow Docker's guide or do this:

# Add Docker's official GPG key:
sudo apt update
sudo apt install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
sudo tee /etc/apt/sources.list.d/docker.sources <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

sudo apt update

And then this:

sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Install Bitwarden

Add a bitwarden user

sudo adduser bitwarden

Set the password

sudo passwd bitwarden

Create docker group and add bitwarden user to it

# Add group if it doesn't exist
sudo groupadd docker

# Add bitwarden user to it
sudo usermod -aG docker bitwarden

Prep install directory

# Create a directory for bitwarden install
sudo mkdir /opt/bitwarden

# Set permissions
sudo chmod -R 700 /opt/bitwarden

# Set owner
sudo chown -R bitwarden:bitwarden /opt/bitwarden

Install the software

# IMPORTANT!  Change to the bitwarden user first!
sudo su - bitwarden

# Grab the install script
curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod 700 bitwarden.sh

# Run it
./bitwarden.sh install

Edit the main config file

Do a nano ~/bwdata/env/nano global.override.env and then, at a minimum, populate these fields so users can get emails when they register for your site:

globalSettings__mail__replyToEmail=no-reply@yoursite.com
globalSettings__mail__smtp__host=some.smtp.server
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=true
globalSettings__mail__smtp__username=mail@yoursite.com
globalSettings__mail__smtp__password=xyz123

Then restart Bitwarden:

./bitwarden.sh restart

Finally, if you're like me and you want to disable user registrations after the Bitwarden admins have registered, open up the config file one more time and set this setting:

globalSettings__disableUserRegistration=true

And then do one final:

./bitwarden.sh restart