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ón → Seguridad → Inicio 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. Environment → Self-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.
