Personalización
groales edited this page 2025-12-03 14:24:58 +01:00

Personalización

Esta guía cubre opciones avanzadas de personalización para adaptar Vaultwarden a tus necesidades específicas.

📧 Configurar SMTP

SMTP permite a Vaultwarden enviar emails para:

  • Verificación de cuentas nuevas
  • Invitaciones a usuarios
  • Códigos 2FA por email
  • Notificaciones de seguridad

Variables SMTP

Añade estas variables de entorno a tu configuración:

# Servidor SMTP
SMTP_HOST=smtp.tudominio.com
SMTP_FROM=vaultwarden@tudominio.com
SMTP_PORT=587
SMTP_SECURITY=starttls

# Autenticación
SMTP_USERNAME=vaultwarden@tudominio.com
SMTP_PASSWORD=tu_password_smtp

# Opcional
SMTP_TIMEOUT=15

Configuración según Proveedor

📮 Gmail

⚠️ Requiere "App Password" (contraseña de aplicación):

  1. Ve a https://myaccount.google.com/security
  2. Activa verificación en 2 pasos
  3. Genera una App Password
  4. Usa estos valores:
SMTP_HOST=smtp.gmail.com
SMTP_FROM=tucuenta@gmail.com
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_USERNAME=tucuenta@gmail.com
SMTP_PASSWORD=app_password_generada
📮 Outlook / Microsoft 365
SMTP_HOST=smtp.office365.com
SMTP_FROM=tucuenta@outlook.com
SMTP_PORT=587
SMTP_SECURITY=starttls
SMTP_USERNAME=tucuenta@outlook.com
SMTP_PASSWORD=tu_password

Para cuentas corporativas M365, usa:

SMTP_HOST=smtp.office365.com
SMTP_FROM=tucuenta@tuempresa.com
📮 Servidor SMTP Propio
SMTP_HOST=mail.tudominio.com
SMTP_FROM=noreply@tudominio.com
SMTP_PORT=587               # O 465 para SSL directo
SMTP_SECURITY=starttls      # O 'ssl' para puerto 465
SMTP_USERNAME=usuario_smtp
SMTP_PASSWORD=password_smtp

Aplicar Configuración SMTP

Desde Portainer:

  1. Ve a tu stack vaultwarden
  2. Environment variables → Añade las variables SMTP
  3. Update the stack

Desde CLI:

  1. Edita .env y añade las variables
  2. Ejecuta: docker compose up -d

Probar SMTP

  1. Ve a /admin
  2. General Settings → Scroll down
  3. Test SMTP → Introduce un email
  4. Haz clic en Send test email
  5. Verifica que recibiste el email

Si falla, revisa los logs:

docker compose logs vaultwarden | grep -i smtp

👤 Configuración de Usuarios

Límite de Usuarios

Para limitar el número de cuentas:

USER_LIMIT=50  # Máximo 50 usuarios

Cuando se alcance el límite:

  • No se permiten más registros
  • No se pueden enviar más invitaciones
  • Los usuarios existentes siguen funcionando

Dominio Permitido para Emails

Restringir registros solo a ciertos dominios:

SIGNUPS_DOMAINS_WHITELIST=tuempresa.com,otrodominio.com

Solo emails con @tuempresa.com o @otrodominio.com podrán registrarse.

Verificación de Email Obligatoria

SIGNUPS_VERIFY=true

Los usuarios no podrán usar Vaultwarden hasta verificar su email (requiere SMTP).

Desactivar Registros pero Permitir Invitaciones

SIGNUPS_ALLOWED=false
INVITATIONS_ALLOWED=true
  • No hay registro público
  • Los admins pueden enviar invitaciones desde /admin

🎨 Personalización Visual

Cambiar el Nombre

Por defecto muestra "Bitwarden". Para personalizarlo:

ORG_NAME=Mi Empresa IT

Aparecerá en:

  • Título de la página
  • Emails enviados
  • Invitaciones

Favicon Personalizado

Vaultwarden usa el favicon de Bitwarden por defecto. Para cambiarlo:

  1. Monta un volumen con tu favicon:
volumes:
  - vaultwarden_data:/data
  - ./custom/favicon.ico:/web-vault/favicon.ico:ro
  1. Crea ./custom/favicon.ico con tu icono

Deshabilitar Iconos de Servicios

Por privacidad, puedes deshabilitar la descarga de iconos:

ICON_SERVICE=none

Ventajas:

  • 🔒 No se hacen requests externos
  • 🚀 Ligeramente más rápido
  • 🔐 Más privacidad

Desventaja:

  • No verás iconos bonitos de Google, GitHub, etc.

🔒 Seguridad Avanzada

Session Timeout

Controla cuánto tiempo permanecen activas las sesiones:

# Segundos antes de pedir re-autenticación
SESSION_TIMEOUT=3600  # 1 hora

# Segundos antes de cerrar sesión completamente
IDLE_TIMEOUT=7200  # 2 horas

Restringir Creación de Organizaciones

ORG_CREATION_USERS=admin@tudominio.com,manager@tudominio.com

Solo estos usuarios podrán crear organizaciones. Otros pueden unirse pero no crear.

Limitar Adjuntos

Los usuarios pueden adjuntar archivos a las contraseñas (ej: certificados, llaves SSH):

# Tamaño máximo por adjunto (en KB)
ATTACHMENT_LIMIT=10240  # 10 MB

# Tamaño total máximo para un usuario (en KB)
USER_ATTACHMENT_LIMIT=102400  # 100 MB

Deshabilitar Completamente el Registro

Incluso para admins:

SIGNUPS_ALLOWED=false
INVITATIONS_ALLOWED=false

Útil cuando ya tienes todas las cuentas creadas y quieres cerrar completamente el acceso.

📊 Base de Datos

SQLite (Por Defecto)

Vaultwarden usa SQLite, que es perfecto para la mayoría de casos:

  • Sin configuración adicional
  • Backups sencillos
  • Eficiente para <1000 usuarios
  • Todo en el volumen /data

No requiere cambios, funciona out-of-the-box.

Migrar a PostgreSQL (Avanzado)

Para instalaciones muy grandes (>500 usuarios):

DATABASE_URL=postgresql://usuario:password@postgres:5432/vaultwarden

⚠️ Requiere:

  1. Contenedor PostgreSQL adicional
  2. Migración manual de datos
  3. Backups más complejos

No es necesario para la mayoría de despliegues.

Migrar a MySQL/MariaDB (Avanzado)

DATABASE_URL=mysql://usuario:password@mysql:3306/vaultwarden

Similar a PostgreSQL, solo para casos muy específicos.

🔔 Notificaciones Push

Vaultwarden puede enviar notificaciones push a dispositivos móviles:

PUSH_ENABLED=true
PUSH_INSTALLATION_ID=tu_id
PUSH_INSTALLATION_KEY=tu_key

⚠️ Limitaciones:

  • Requiere registro en el servicio de Bitwarden
  • Solo funciona con apps móviles oficiales
  • La mayoría de usuarios no lo necesitan (WebSocket es suficiente)

Para la mayoría: déjalo desactivado y usa WebSocket.

🌍 Localización

Zona Horaria

TZ=Europe/Madrid  # Ya configurado en el docker-compose

Otras opciones:

  • America/New_York
  • Asia/Tokyo
  • UTC

Lista completa: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones

Formato de Logs

LOG_TIMESTAMP_FORMAT=%Y-%m-%d %H:%M:%S

Personaliza cómo aparecen las fechas en los logs.

🔧 Rendimiento

Workers

Vaultwarden usa Rocket (framework web). Para mayor rendimiento:

ROCKET_WORKERS=10  # Por defecto: número de CPUs

Aumenta si tienes muchos usuarios concurrentes.

Database Pool

DATABASE_MAX_CONNS=10  # Conexiones simultáneas a la DB

Aumenta si ves errores de "database locked" con muchos usuarios.

Cache

Iconos de servicios se cachean automáticamente:

ICON_CACHE_TTL=2592000  # Segundos (30 días por defecto)
ICON_CACHE_NEGTTL=259200  # Cache para iconos no encontrados (3 días)

🔐 Yubico OTP (Yubikey)

Soporte para llaves de hardware Yubikey:

YUBICO_CLIENT_ID=tu_client_id
YUBICO_SECRET_KEY=tu_secret_key

Obtén credenciales en: https://upgrade.yubico.com/getapikey/

Los usuarios podrán usar sus Yubikeys para 2FA.

🌐 Configuración de Red

IP y Puerto Interno

Por defecto Vaultwarden escucha en 0.0.0.0:80:

ROCKET_ADDRESS=0.0.0.0
ROCKET_PORT=80

Generalmente no necesitas cambiar esto (el proxy se encarga del resto).

WebSocket en Puerto Diferente

Por defecto WebSocket usa el puerto 3012. Para cambiarlo:

WEBSOCKET_PORT=3012

Si cambias esto, actualiza también:

  • Labels de Traefik (loadbalancer.server.port)
  • Configuración de NPM

📝 Ejemplo de Configuración

Un archivo .env mínimo para producción:

# Obligatorio - Hash Argon2 (generado con: docker run --rm -it vaultwarden/server:latest /vaultwarden hash)
# IMPORTANTE: Usar comillas simples para evitar interpretación de $
ADMIN_TOKEN='$argon2id$v=19$m=65540,t=3,p=4$...'

# Para Traefik
DOMAIN_HOST=vaultwarden.empresa.com

Nota: El resto de opciones (SMTP, límites, restricciones, etc.) se configuran desde el panel de administración /admin después del despliegue. Esto permite:

  • Cambios sin redesplegar contenedores
  • Configuración más intuitiva desde GUI
  • Menos variables de entorno que gestionar

Para opciones avanzadas que SÍ requieren variables de entorno, consulta las secciones específicas de esta página.

🔄 Aplicar Cambios

Después de cambiar variables de entorno:

Portainer:

  1. Stack → Environment variables → Editar
  2. Update the stack

CLI:

# Edita .env
nano .env

# Recrea el contenedor
docker compose up -d

Los cambios se aplican automáticamente al recrear el contenedor.

📖 Referencias


Última actualización: Diciembre 2025