> For the complete documentation index, see [llms.txt](https://herbertech.gitbook.io/bitwarden-setup-guide/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://herbertech.gitbook.io/bitwarden-setup-guide/bitwarden-setup-guide.md).

# Bitwarden setup guide

## Bitwarden registration

#### Get Bitwarden id and key at: <https://bitwarden.com/host/>

#### Save id and key somewhere

#### Create smtp e-mail account

Write down:

> e-mail address

> username(if required)

> password

> smtp server hostname

> smtp port

> SSL required?

## Cloud setup

### Create VPS/Instance

### Set up DNS (create A record)

### Install updates

`sudo apt update && sudo apt upgrade`

### Firewall rules

Allow firewall rules (can be through cloud if provider allows. Ex. AWS, Azure)

`sudo ufw allow 22`

`sudo ufw allow 80`

`sudo ufw allow 443`

## Installing Bitwarden

### Install docker, docker compose

`sudo apt update`

`sudo apt install ca-certificates curl gnupg lsb-release`

`sudo mkdir -p /etc/apt/keyrings`

`curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg`

`echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null`

`sudo apt update`

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

### Create user for Bitwarden and set password

`sudo adduser bitwarden`

`sudo passwd bitwarden`

### Create docker group if it doesn't exist yet, and add Bitwarden user to docker group

`sudo groupadd docker`

`sudo usermod -aG docker bitwarden`

`sudo usermod -aG sudo bitwarden`

### Create Bitwarden directory

`sudo mkdir /opt/bitwarden`

#### Set permissions on directory

`sudo chown -R bitwarden:bitwarden /opt/bitwarden`

`sudo chmod -R 700 /opt/bitwarden`

### Install Bitwarden

`sudo su bitwarden`

`cd /opt/bitwarden`

`sudo curl -Lso bitwarden.sh https://go.btwrdn.co/bw-sh && sudo chmod 700 bitwarden.sh`

`sudo ./bitwarden.sh install`

### Run through setup

#### Enter domain name created

> Use Let's Encrypt? Yes, unless other certificate should be used.

> Enter installation ID

> Enter installation key

> SSL cert to use? (Only prompted when no Let's Encrypt)

> Generate cert? (Only prompted when no Let's Encrypt)

### Set-up e-mail

`sudo vim bwdata/env/global.override.env`

> globalSettings\_\_mail\_\_smtp\_\_host=x.y.z

> globalSettings\_\_mail\_\_smtp\_\_port=587

> globalSettings\_\_mail\_\_smtp\_\_ssl=true

> globalSettings\_\_mail\_\_smtp\_\_username=xxxxx

> globalSettings\_\_mail\_\_smtp\_\_password=xxxxx

> globalSettings\_\_mail\_\_replyToEmail=xxxxx
