Bitwarden es un gestor de contraseñas de código abierto que proporciona una forma segura de almacenar y gestionar todas tus contraseñas y datos sensibles. Te permite crear, almacenar y acceder a tus contraseñas desde cualquier dispositivo, garantizando que todas ellas estén protegidas por un fuerte cifrado.

Con Bitwarden, puedes generar contraseñas seguras y únicas para cada uno de tus cuentas en línea, reduciendo el riesgo de hackeo y de compromiso de tus datos personales. Además de contraseñas, Bitwarden también permite guardar notas seguras, información de tarjetas de crédito y otros datos sensibles.

En el siguiente tutorial vamos a instalar la versión self-hosting en un servidor con Ubuntu 22.04 y Docker.

Especificaciones de Bitwarden

A continuación os pasamos la tabla siguiente con los recursos necesarios para este software:

Minimum Recommended
Processor x64, 1.4GHz x64, 2GHz dual core
Memory 2GB RAM 4GB RAM
Storage 12GB 25GB
Docker Version Engine 19+ and Compose 1.24+ Engine 19+ and Compose 1.24+

Requisitos para instalar Bitwarden

Para instalar Bitwarden correctamente es necesario tener configurado previamente lo siguiente:

  • Un dominio apuntando correctamente al servidor.
  • Tener instalado en el servidor Docker y Docker Compose

Para instalar Docker en Ubuntu 22.04, podéis seguir este otro tutorial:

Instalación de Docker en Ubuntu 22.04
Docker es una aplicación que simplifica el proceso de gestión de los procesos de las aplicaciones en contenedores. Los contenedores le permiten ejecutar sus aplicaciones en procesos aislados de recursos.

Instalación de Bitwarden

El procedimiento para instalar Bitwarden se debe de seguir de la siguiente forma. Lo primero nos conectaremos al servidor por SSH.

Creación de usuario

Para ejecutar Bitwarden deberemos de crear un usuario especifico para que ejecute el contenedor de Docker.

adduser bitwarden

Configuramos contraseña al usuario:

passwd bitwarden

Añadimos el usuario al grupo de Docker:

usermod -aG docker bitwarden

Creamos el directorio de la instalación:

mkdir /opt/bitwarden

Configuramos los permisos de los directorios:

chmod -R 700 /opt/bitwarden
chown -R bitwarden:bitwarden /opt/bitwarden

Instalación de Bitwarden

Ahora con el usuario de bitwarden ejecutamos los siguientes comandos para instalar Bitwarden:

$ curl -s -L -o bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux"

Cambiamos permisos al ejecutable:

$ chmod +x bitwarden.sh

Y lo ejecutamos:

$ ./bitwarden.sh install

Se ejecutará el instalado y nos irá pidiendo información de nuestro servidor de Bitwarden, primero de todo nos pedirá el dominio:

(!) Enter the domain name for your Bitwarden instance (ex. bitwarden.example.com): dominio.com

Nos pide si queremos configurar SSL en el dominio, le decimos que si:

(!) Do you want to use Let's Encrypt to generate a free SSL certificate? (y/n): y

A continuación nos pedirá una ID de instalación que deberemos de ir a bitwarden.com/host y añadir nuestro dominio:

(!) Enter your installation id (get at https://bitwarden.com/host): 65001d80-9785-4a9b-978c-XXXXXXXX

Después de añadir esta información, finalizará la instalación y podremos levantar el contenedor de bitwarden:

$ ./bitwarden.sh start

Salida del comando

bitwarden.sh version 2024.2.0
Docker version 24.0.5, build 24.0.5-0ubuntu1~22.04.1
docker-compose version 1.29.2, build unknown

Pulling mssql ... done
Pulling web ... done
Pulling attachments ... done
Pulling api ... done
Pulling identity ... done
Pulling sso ... done
Pulling admin ... done
Pulling icons ... done
Pulling notifications ... done
Pulling events ... done
Pulling nginx ... done
Using default tag: latest
latest: Pulling from certbot/certbot
Digest: sha256:953b5daac63b14e4f8b77aacf4831f916faac836c67cd12fcc6408201554962e
Status: Image is up to date for certbot/certbot:latest
docker.io/certbot/certbot:latest
Saving debug log to /etc/letsencrypt/logs/letsencrypt.log

Processing /etc/letsencrypt/renewal/pass.arrels.top.conf

Certificate not yet due for renewal

The following certificates are not due for renewal yet:
/etc/letsencrypt/live/pass.arrels.top/fullchain.pem expires on 2024-05-19 (skipped)
No renewals were attempted.

Creating directory /root/bwdata/core
Creating directory /root/bwdata/core/attachments
Creating directory /root/bwdata/logs
Creating directory /root/bwdata/logs/admin
Creating directory /root/bwdata/logs/api
Creating directory /root/bwdata/logs/events
Creating directory /root/bwdata/logs/icons
Creating directory /root/bwdata/logs/identity
Creating directory /root/bwdata/logs/mssql
Creating directory /root/bwdata/logs/nginx
Creating directory /root/bwdata/logs/notifications
Creating directory /root/bwdata/logs/sso
Creating directory /root/bwdata/logs/portal
Creating directory /root/bwdata/mssql/backups
Creating directory /root/bwdata/mssql/data
Creating network "docker_default" with the default driver
Creating network "docker_public" with the default driver
Creating bitwarden-identity ... done
Creating bitwarden-icons ... done
Creating bitwarden-mssql ... done
Creating bitwarden-web ... done
Creating bitwarden-events ... done
Creating bitwarden-notifications ... done
Creating bitwarden-api ... done
Creating bitwarden-sso ... done
Creating bitwarden-attachments ... done
Creating bitwarden-admin ... done
Creating bitwarden-nginx ... done
2024.2.0: Pulling from bitwarden/setup
Digest: sha256:61accdd92a6b8819194610e4691cd0ee1da6c5b4ae58e63fc720da6135bf01da
Status: Image is up to date for bitwarden/setup:2024.2.0
docker.io/bitwarden/setup:2024.2.0

Bitwarden is up and running!

Ahora ya podemos acceder a nuestro dominio y crear una cuenta nueva. Como siempre si queréis configurar el servicio SMTP o configurar un administrador revisad la documentación oficial para más información.

Haz que cada palabra cuente: tu donación nos inspira a seguir creando contenido. Accede al apartado de Donación para hacer tu aportación