Vaultwarden: Tu propio gestor de contraseñas.

Vaultwarden es una implementación compatible con la API de Bitwarden escrita en Rust. Consume muy pocos recursos (menos de 10 MB de RAM), soporta todos los clientes oficiales de Bitwarden y te da control total sobre tus contraseñas sin depender de servidores externos. Es la opción ideal para equipos técnicos que quieren las ventajas de Bitwarden sin la suscripción cloud.

Despliegue con Docker

mkdir -p /opt/vaultwarden/data

ADMIN_TOKEN=$(openssl rand -base64 48)
echo "ADMIN_TOKEN: $ADMIN_TOKEN"   # guárdalo bien

docker run -d \
  --name vaultwarden \
  --restart unless-stopped \
  -e ADMIN_TOKEN="$ADMIN_TOKEN" \
  -e DOMAIN="https://vault.miempresa.com" \
  -e SIGNUPS_ALLOWED=false \
  -e INVITATIONS_ALLOWED=true \
  -e SMTP_HOST=smtp.miempresa.com \
  -e SMTP_FROM=vault@miempresa.com \
  -e SMTP_PORT=587 \
  -e SMTP_SECURITY=starttls \
  -e SMTP_USERNAME=vault@miempresa.com \
  -e SMTP_PASSWORD=smtppassword \
  -v /opt/vaultwarden/data:/data \
  -p 127.0.0.1:8080:80 \
  vaultwarden/server:latest

Proxy inverso con Nginx y SSL

Vaultwarden requiere HTTPS para funcionar correctamente (los clientes no se conectan sin SSL):

server {
    listen 80;
    server_name vault.miempresa.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl http2;
    server_name vault.miempresa.com;

    ssl_certificate     /etc/letsencrypt/live/vault.miempresa.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/vault.miempresa.com/privkey.pem;

    # Headers de seguridad
    add_header Strict-Transport-Security "max-age=31536000; includeSubDomains" always;
    add_header X-Frame-Options SAMEORIGIN;
    add_header X-Content-Type-Options nosniff;

    # Notificaciones en tiempo real (WebSocket)
    location /notifications/hub {
        proxy_pass http://127.0.0.1:3012;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }

    location / {
        proxy_pass http://127.0.0.1:8080;
        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;
    }
}
docker run ... \
  -p 127.0.0.1:8080:80 \
  -p 127.0.0.1:3012:3012 \
  -e WEBSOCKET_ENABLED=true \
  vaultwarden/server:latest

Configuración con Docker Compose

version: '3.8'
services:
  vaultwarden:
    image: vaultwarden/server:latest
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:80"
      - "127.0.0.1:3012:3012"
    volumes:
      - ./data:/data
    environment:
      DOMAIN: "https://vault.miempresa.com"
      ADMIN_TOKEN: "${ADMIN_TOKEN}"
      SIGNUPS_ALLOWED: "false"
      INVITATIONS_ALLOWED: "true"
      WEBSOCKET_ENABLED: "true"
      # Email
      SMTP_HOST: smtp.miempresa.com
      SMTP_FROM: vault@miempresa.com
      SMTP_PORT: "587"
      SMTP_SECURITY: starttls
      SMTP_USERNAME: vault@miempresa.com
      SMTP_PASSWORD: "${SMTP_PASSWORD}"
      # Organización
      ORG_CREATION_USERS: admin@miempresa.com
      # Seguridad
      PASSWORD_HINTS_ALLOWED: "false"
      SHOW_PASSWORD_HINT: "false"

Panel de administración

Accede a https://vault.miempresa.com/admin con el ADMIN_TOKEN. Desde aquí puedes:

  • Invitar usuarios (cuando SIGNUPS_ALLOWED=false)
  • Ver y gestionar todos los usuarios
  • Configurar 2FA obligatorio
  • Ver estadísticas de uso
  • Diagnosticar problemas de configuración

Configurar 2FA para usuarios

En la app cliente de Bitwarden:

  • ConfiguraciónSeguridadInicio de sesión en dos pasos → activa TOTP con tu app de autenticación.

Para forzar 2FA a nivel de organización (Vaultwarden BE o con plugin):

  • Crear una política de organización que requiera 2FA.

Backup de Vaultwarden

#!/bin/bash

DATOS="/opt/vaultwarden/data"
DESTINO="/mnt/nas/backups/vaultwarden"
FECHA=$(date +%Y%m%d_%H%M%S)

docker stop vaultwarden

tar -czf "$DESTINO/vaultwarden_$FECHA.tar.gz" -C "$DATOS" .

docker start vaultwarden

find "$DESTINO" -name "vaultwarden_*.tar.gz" -mtime +30 -delete

echo "Backup completado: vaultwarden_$FECHA.tar.gz"

Conectar los clientes de Bitwarden

En cualquier cliente oficial de Bitwarden (extensión de navegador, app móvil, app de escritorio):

1. Pantalla de login → icono de engranaje (esquina superior izquierda)
2. EnvironmentSelf-hosted environment
3. Server URL: https://vault.miempresa.com
4. Guardar y hacer login con tu cuenta

Vaultwarden en 10 MB de RAM ofrece exactamente las mismas funcionalidades que Bitwarden cloud para equipos pequeños y medianos: gestión de contraseñas, TOTP, notas seguras, tarjetas, compartición en organización y clientes en todas las plataformas. El único coste es el servidor donde lo alojas, que probablemente ya tienes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *