VaultWarden es una alternativa ligera y eficiente al servidor oficial de Bitwarden que permite gestionar contraseñas de forma segura y privada al estar desarrollado en Rust y ser totalmente compatible con las aplicaciones oficiales de Bitwarden ofreciendo cifrado de extremo a extremo y un menor consumo de recursos al permitir el uso de SQLite en lugar de PostgreSQL lo que facilita su instalación y mantenimiento además de hacerlo ideal para dispositivos con recursos limitados como una Raspberry Pi o un servidor pequeño
Su despliegue es muy sencillo gracias a Docker permitiendo su instalación en pocos minutos sin configuraciones complejas y ofreciendo opciones avanzadas de personalización como la posibilidad de permitir registros configurar dominios personalizados y activar autenticación en dos pasos
Es una solución perfecta para quienes buscan independencia y control sobre sus datos sin depender de servidores externos ni pagar suscripciones premium brindando una forma accesible y segura de gestionar credenciales con la confianza de que todo el almacenamiento está bajo control del usuario
Instalación de Docker
Para instalar VaultWarden es necesario utilizar Docker, de esta manera será muy sencillo hacer la actualización y despliegue:

Instalación y configuración de Nginx Proxy
Utilizaremos Nginx Proxy para poder configurar acceso a través de dominio con SSL, para ello lo primero será instalar Nginx:
apt install nginxPor el momento, paramos el servicio ya que tenemos que hacer algunas configuraciones. Lo primero será utilizar el fichero de configuración siguiente, pero antes creamos el fichero:
cd /etc/nginx/sites-enabled/
touch vault.confY añadimos lo siguiente:
# The `upstream` directives ensure that you have a http/1.1 connection
# This enables the keepalive option and better performance
#
# Define the server IP and ports here.
upstream vaultwarden-default {
zone vaultwarden-default 64k;
server 127.0.0.1:8080;
keepalive 2;
}
# Needed to support websocket connections
# See: https://nginx.org/en/docs/http/websocket.html
# Instead of "close" as stated in the above link we send an empty value.
# Else all keepalive connections will not work.
map $http_upgrade $connection_upgrade {
default upgrade;
'' "";
}
# Redirect HTTP to HTTPS
server {
listen 80;
listen [::]:80;
server_name [DOMINIO];
return 301 https://$host$request_uri;
}
server {
# For older versions of nginx appended http2 to the listen line after ssl and remove `http2 on`
listen 443 ssl;
listen [::]:443 ssl;
#http2 on;
server_name [DOMINIO];
# Specify SSL Config when needed
ssl_certificate /etc/letsencrypt/live/[DOMINIO]/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/[DOMINIO]/privkey.pem;
#ssl_trusted_certificate /path/to/certificate/letsencrypt/live/vaultwarden.example.tld/fullchain.pem;
add_header Strict-Transport-Security "max-age=31536000;";
client_max_body_size 525M;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
location / {
proxy_pass http://vaultwarden-default;
}
}[DOMINIO] por tu dominio antes de guardar el documento.Tras guardar nuestra configuración, editamos el fichero de configuración de Nginx para cambiar una cosa:
nano /etc/nginx/nginx.conf Tenemos que buscar el parámetro server_name_hash_bucket_size descomentarlo y cambiar el valor por 128:
server_names_hash_bucket_size 128;
Instalación del SSL
A continuación, configuraremos el certificado SSL. Para ello, primero instalaremos los paquetes necesarios para generar el certificado con Let's Encrypt.
apt install certbot python3-certbot-nginxY generamos el certificado:
certbot certonlyVamos a generar sólo el certificado para poder levantar Nginx sin problemas, así que seguiremos los pasos para generarlo.
Una vez se haya generado, comprobamos la configuración de Nginx:
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successfulTras obtener un resultado correcto del fichero de configuración, podemos iniciar de nuevo nuestro Nginx:
systemctl start nginxConfiguración de Docker
Para configurar la imagen de Docker utilizaremos Docker Compose, ya que facilita mucho el despliegue de todo. Primero prepararemos el entorno, creamos el directorio:
mkdir /opt/vaultwarden
touch /opt/vaultwarden/compose.yamlY editamos el fichero de configuración /opt/vaultwarden/compose.yaml:
nano /opt/vaultwarden/compose.yamlAñadimos la siguiente configuración:
version: "3.8"
services:
vaultwarden:
image: vaultwarden/server:latest
container_name: vaultwarden
restart: unless-stopped
environment:
SIGNUPS_ALLOWED: "false"
volumes:
- ./opt/vaultwarden/:/data/
ports:
- 127.0.0.1:8080:80En el apartado de environment podemos poner toda la configuración que necesitemos, por ejemplo la configuración de correo:
environment:
SMTP_HOST: "smtp.example.com"
SMTP_FROM: "noreply@voidnull.es"
SMTP_PORT: 465
SMTP_USERNAME: "noreply@voidnull.es"
SMTP_PASSWORD: "contraseña"Si necesitáis configurar algunas cosas más, podéis revisar la Wiki donde está toda la explicación para configurar todo lo necesario.
Una vez tenemos toda la configuración a nuestro gusto, podemos levantar el contenedor con:
docker compose up -dSalida comando
[+] Running 2/2
✔ Network vw-data_default Created
0.1s ✔ Container vaultwarden Started
Acceder a la interfaz web
Si accedemos al dominio que hemos configurado, tendremos acceso a la interfaz de VaultWarden:

Podemos crear una cuenta nueva haciendo clic "Crear cuenta":

Más sobre ./voidNull
- 📖 Aprende todos sobre los comandos de GNU/Linux en nuestro Diccionario "De la A a la Z: Los comandos de GNU/Linux"
- 💪 ¡Forma parte de la Comunidad de ./voidNull!
- 🤖 Disfruta de todos nuestros Cursos sobre Ansible, Proxmox, Home Assistant entre otros.
- 📩 Mantente actualizado con lo último en GNU/Linux y Software Libre. Recibe nuestra Newsletter mensual.

Comentarios