Self Host Bitwarden Password Manager

Password manager memudahkan kita dalam mengelola password. Kita bisa membuat password radom berbeda untuk setiap account dan cukup mengingat 1 password ataupun menggunakan passkey untuk membuka passwordnya.

Google, apple dan microsoft juga memiliki password manager sendiri. Terkadang password mereka ini kurang compatible untuk berjalan pada perangkat lain. Aplikasi password manager pihak ketiga juga banyak tersedia seperti last pass, proton dan bahkan synology juga menyediakan aplikasi password manager. Bitwarden salah satu aplikasi yang memiliki tingkat kepercayaan tinggi. yang menarik dari bitwarden adalah kita bisa host sendiri di server kita.

Vaultwarden adalah versi open source dari bitwarden. kita bisa deploy vault warden menggunakan docker image dan menggunakan aplikasi bitwarden client untuk PC, Browser Extension dan di mobile device android maupun iOS. Aplikasi client bitwarden juga sudah mendukung TOTP sehingga kita bisa menggunakan Bitwarden sebagai authenticator app.

Prerequisite

  1. Service dengan docker engine
  2. Domain
  3. Caddy Reverse Proxy

Installasi Bitwarden

docker pull vaultwarden/server:latest
docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

Vaultwarden akan listen di port 8000 pada host port. 127.0.0.1. pada langkah ini vaultwarden sudah bisa digunakan tetapi belum bisa remote dari client. Kamu bisa mengganti IP 127.0.0.1 ke 0.0.0.0 agar bisa langsung di remote dari client ke port 8000.

Reverse Proxy

Supaya kita bisa digunakan dari client dengan domain name maka kita perlu menggunakan reverse proxy. Di sini saya menggunakan Caddy Reverse proxy

Install Caddy di ubuntu server

apt install caddy

Tambahkan bari berikut pada konfigurasi caddy di file /etc/caddy/Caddy

bitwarden.domain.com {
    reverse_proxy localhost:8000
}

Jangan lupa aktifkan service caddy

systemctl start caddy
systemctl enable caddy

Sebelumnya kamu perlu pointing domain ke IP address dari VPS yang digunakan