SSD Nodes Learn 🎉 VPS desde $4.99/mes
Guías Matt ConnorPor Matt Connor · Actualizado 2026-08-07

Vaultwarden o Bitwarden self-hosted: cuál elegir

Bitwarden self-hosted requiere unos 12 contenedores y 2 GB de RAM; Vaultwarden ofrece la misma API en uno. Compara costes, funciones y copias de seguridad.

Qué son realmente Vaultwarden y Bitwarden self-hosted

Vaultwarden frente a Bitwarden self-hosted es una elección entre dos servidores que hablan la misma API de cliente, no entre dos gestores de contraseñas. La propia pila de Bitwarden ejecuta aproximadamente una docena de contenedores detrás de nginx, almacena todo en Microsoft SQL Server y está vinculada a un ID de instalación que se registra con una dirección de correo electrónico. Vaultwarden es una reimplementación no oficial de la API de cliente de Bitwarden, escrita en Rust, que se ejecuta como un solo contenedor y utiliza un único archivo SQLite. La extensión del navegador y el teléfono no pueden distinguirlos, porque ambos responden a los mismos endpoints.

El cifrado es idéntico en ambos casos. Los clientes de Bitwarden cifran el almacén antes de que cualquier dato salga del dispositivo, por lo que el servidor almacena blobs que no puede leer. El formato del almacén también pertenece a Bitwarden en ambos casos. Lo que cambia es cuánta máquina debe alquilar, quién mantiene el código, qué funciones tienen coste y qué datos debe incluir en las copias de seguridad.

El README de Vaultwarden es claro sobre su estado: "This project is not associated with Bitwarden or Bitwarden, Inc." Es un proyecto mantenido por voluntarios, sin servicio de soporte ni garantía. Uno de los mantenedores activos trabaja en Bitwarden y contribuye durante su tiempo personal, lo que constituye una cortesía y no una aprobación.

Las tres pilas que puede instalar

La mayoría de las comparaciones omiten que Bitwarden distribuye dos productos distintos para alojamiento propio.

Bitwarden estándar. Es el despliegue del proveedor, controlado mediante un script de shell.

Bitwarden estándar. ```bash
curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" \
&& chmod 700 bitwarden.sh
./bitwarden.sh install


El instalador solicita el dominio, si debe solicitar un certificado de Let's Encrypt, el nombre de la base de datos y un ID y una clave de instalación que obtiene en `https://bitwarden.com/host` al introducir una dirección de correo electrónico. `./bitwarden.sh start` descarga las imágenes y pone en marcha la pila. Bitwarden documenta 2 GB de RAM y 12 GB de almacenamiento como requisitos mínimos, 4 GB y 25 GB como valores recomendados, y Docker Engine 26 o una versión posterior con el plugin Compose. La base de datos es una imagen de MSSQL Express, y esa edición limita la base de datos relacional a 10 GB, a menos que configure el despliegue para usar una base de datos externa.

**Bitwarden lite.** Este es el despliegue que antes se llamaba Bitwarden Unified. Salió de la fase beta y cambió de nombre en diciembre de 2025. Consta de un contenedor de aplicación y una base de datos a su elección:

```yaml
services:
  bitwarden:
    depends_on:
      - db
    env_file:
      - settings.env
    image: ghcr.io/bitwarden/lite
    restart: always
    ports:
      - "80:8080"
    volumes:
      - bitwarden:/etc/bitwarden
  db:
    environment:
      MARIADB_USER: "bitwarden"
      MARIADB_PASSWORD: "super_strong_password"
      MARIADB_DATABASE: "bitwarden_vault"
      MARIADB_RANDOM_ROOT_PASSWORD: "true"
    image: mariadb:10
    restart: always
    volumes:
      - data:/var/lib/mysql
volumes:
  bitwarden:
  data:

Acepta MariaDB o MySQL, PostgreSQL, SQLite y MSSQL, y requiere 200 MB de RAM y 1 GB de almacenamiento. La documentación de Bitwarden incluye dos advertencias. Está documentado para uso personal y laboratorios domésticos, no para uso empresarial. Además, no realiza copias de seguridad automáticas de la base de datos, por lo que esa tarea queda completamente a su cargo.

Vaultwarden. Un contenedor, directamente del README del proyecto:

docker run --detach --name vaultwarden \
  --env DOMAIN="https://vw.domain.tld" \
  --volume /vw-data/:/data/ \
  --restart unless-stopped \
  --publish 127.0.0.1:8000:80 \
  vaultwarden/server:latest

La línea de publicación enlaza el puerto 8000 sólo con loopback, de forma intencionada. Vaultwarden sirve HTTP sin cifrar y espera que un reverse proxy termine TLS (seguridad de la capa de transporte) delante de él. TLS no es opcional en este caso: el almacén web realiza el cifrado mediante la API WebCrypto del navegador, que los navegadores sólo exponen en un contexto seguro. Por eso, mediante http sin cifrar, la página de inicio de sesión falla en el navegador antes de que se contacte con el servidor. El tutorial completo para instalar Vaultwarden cubre el proxy y el certificado.

¿Cuánta RAM usa Vaultwarden frente a Bitwarden autohospedado?

Los mínimos del proveedor indican con qué recursos el instalador se niega a ejecutarse, no cuánto ocupa el software. Las filas siguientes proceden de docker stats --no-stream en instalaciones inactivas, con un usuario, un vault pequeño y sin archivos adjuntos, en un equipo con Ubuntu 24.04 y 4 GB de RAM. El espacio en disco incluye las imágenes y el directorio de datos después del primer arranque correcto.

ChartIdle memory, container count and disk, measured on one Ubuntu 24.04 box
The data behind this chart
[
  {
    "label": "Vaultwarden (SQLite)",
    "idle_ram_mb": 58,
    "containers": 1,
    "disk_gb": 0.4
  },
  {
    "label": "Bitwarden lite + MariaDB",
    "idle_ram_mb": 470,
    "containers": 2,
    "disk_gb": 1.6
  },
  {
    "label": "Bitwarden standard (MSSQL)",
    "idle_ram_mb": "2,400",
    "containers": 12,
    "disk_gb": 6.5
  }
]

Vaultwarden se mantuvo inactivo en 58 MB dentro de un único contenedor. La pila estándar de Bitwarden se mantuvo cerca de 2,400 MB repartidos entre 12 contenedores, y el contenedor MSSQL concentra la mayor parte de ese consumo. Bitwarden lite quedó entre ambos, con 470 MB junto con su contenedor MariaDB. Ejecute el mismo comando en su propio equipo antes de confiar en estas cifras, porque varían según el número de usuarios, los archivos adjuntos y el tráfico de sincronización, y MSSQL aumenta su conjunto de trabajo cuanto más tiempo permanece en ejecución.

La conclusión práctica para un VPS pequeño es la siguiente: Vaultwarden con SQLite funciona correctamente en un plan de 1 GB, mientras que la pila estándar de Bitwarden no se iniciará allí. En un plan de 2 GB, la pila estándar cumple el mínimo documentado y deja muy poca memoria para el sistema operativo, por lo que el killer de memoria insuficiente del kernel se convierte en un riesgo real. Cuando se activa, dmesg muestra una línea con el proceso que terminó, que en esta pila suele ser sqlservr. Asigne 4 GB a la implementación estándar.

¿Qué funciones de pago son gratuitas en Vaultwarden?

Ejecutar el servidor de Bitwarden no cuesta nada, pero las funciones de pago permanecen bloqueadas hasta que se carga un archivo de licencia. Las cuentas individuales Premium y todos los niveles de organizaciones de pago (Families, Teams, Enterprise) necesitan una. Puede descargarla desde la bóveda web en la nube, en Settings y después Subscription para una cuenta individual, o desde Admin Console, en Billing y después Subscription, para una organización, y cargarla en su propia instancia. Las licencias de organización se emiten para el ID de instalación almacenado en ./bwdata/env/global.override.env. Por tanto, una organización autoalojada sigue teniendo una suscripción de pago y sigue conectándose a la nube de Bitwarden para la facturación.

Vaultwarden activa las mismas funciones sin licencia ni suscripción. La wiki del proyecto las enumera:

  • organizaciones, colecciones y grupos
  • archivos adjuntos
  • inicio de sesión en dos pasos con correo electrónico, Duo, YubiKey y FIDO2
  • Emergency Access
  • Bitwarden Send
  • claves de API personales
  • SSO mediante OpenID Connect

SSO es la función más reciente de esta lista y se configura con SSO_ENABLED, SSO_AUTHORITY, SSO_CLIENT_ID y SSO_CLIENT_SECRET. Sólo autentica el inicio de sesión. La wiki indica explícitamente que sigue siendo necesaria una contraseña maestra y que el proveedor de identidad no la controla, porque esa contraseña deriva la clave que descifra la bóveda. Apunte SSO_AUTHORITY al emisor de descubrimiento de un proveedor de identidad Authentik autoalojado para que los usuarios inicien sesión allí y después desbloqueen la bóveda con su contraseña maestra. El valor debe coincidir con el campo issuer que devuelve el endpoint de descubrimiento, sin el sufijo /.well-known/openid-configuration al final.

Lo que no obtiene con Vaultwarden es un proveedor comercial. Bitwarden cuenta con las certificaciones SOC 2 Type 2 e ISO 27001, publica informes de auditoría de terceros y gestiona un programa privado de recompensas por errores en HackerOne. Estas garantías cubren el código y el servicio de Bitwarden, no el servidor que usted instaló. Sin embargo, si un auditor exige un proveedor identificado detrás de su gestor de contraseñas, una reimplementación mantenida por voluntarios resulta difícil de justificar.

¿Funcionan las aplicaciones oficiales de Bitwarden con Vaultwarden?

Sí. Vaultwarden implementa la API de cliente, por lo que las extensiones del navegador, las aplicaciones de escritorio, las aplicaciones móviles y el almacén web incluido funcionan con él. En cada cliente, establezca la URL del servidor autoalojado en la pantalla de entorno antes de iniciar sesión, no después.

Una función requiere configuración adicional: las notificaciones push en las aplicaciones móviles. Sin ellas, la aplicación se sincroniza cuando la abre o según su propio temporizador. Por eso, una contraseña cambiada en el portátil no aparece en el teléfono hasta que lo consulta. Vaultwarden puede usar el relay push de Bitwarden. Necesita un ID de instalación y una clave de la misma página https://bitwarden.com/host que usa el instalador oficial.

PUSH_ENABLED=true
PUSH_INSTALLATION_ID=<your installation id>
PUSH_INSTALLATION_KEY=<your installation key>

Los servidores de la región de la UE también necesitan PUSH_RELAY_URI=https://api.bitwarden.eu y PUSH_IDENTITY_URI=https://identity.bitwarden.eu. La wiki documenta dos problemas que conviene conocer antes de dedicar una hora a depurarlos. Una aplicación instalada desde F-Droid o Neo Store no tiene compatibilidad con Firebase y nunca recibirá notificaciones push, independientemente de la configuración del servidor. Si una aplicación se conectó antes de Vaultwarden 1.30.2, debe borrar sus datos para que registre un token push.

¿Qué seguridad ofrece una reimplementación?

El historial de auditorías de Bitwarden es extenso y público. Cure53 lo revisó en 2018, 2021, 2022 y 2023. IOActive y Mandiant revisaron los clientes en 2024; Fracture Labs realizó evaluaciones web y de red durante 2024 y 2025; Unit 42 evaluó las aplicaciones móviles en 2025; y el Applied Cryptography Group de ETH Zurich revisó la criptografía en 2025.

Vaultwarden también ha sido examinado por entidades externas, aunque esto sorprende a quienes suponen que nadie lo revisa. La Oficina Federal Alemana de Seguridad de la Información (BSI) encargó a mgm security partners que lo probaran entre febrero y mayo de 2024, como parte del proyecto de análisis de código Caos 3.0. Esa revisión clasificó dos hallazgos como de gravedad alta. Por separado, ERNW informó de una omisión de autenticación que afectaba a las versiones anteriores a 1.32.5 (CVE-2024-55225), corregida en noviembre de 2024. La versión 1.37.0, publicada en julio de 2026, incluyó correcciones para SSRF (falsificación de solicitudes del lado del servidor) a través del endpoint de iconos, el acceso entre organizaciones a cifrados y la omisión de una política de organización durante las importaciones de directorios.

Este historial muestra que el proyecto dispone de un proceso de notificación de vulnerabilidades operativo. También señala la superficie que aparece de forma recurrente: la página de administración. Trate esa página como lo que es: un componente sensible. Permanece desactivada mientras no se establezca ADMIN_TOKEN, y debe almacenar un hash en lugar del token en texto plano.

docker run --rm -it vaultwarden/server /vaultwarden hash

El comando imprime una cadena PHC de Argon2 (formato de la competición de hash de contraseñas) que debe pegar en ADMIN_TOKEN. Habilite HTTPS antes de habilitar la página de administración, porque el token se envía en la petición y un token en texto plano a través de una conexión HTTP sin cifrar puede ser leído por cualquier elemento situado en la ruta. Mantenga /admin fuera de Internet pública siempre que sea posible y combínelo con medidas habituales de refuerzo del host, como restringir el acceso SSH al servidor.

Qué se rompe cuando cambia la API oficial

Este es el riesgo que se suele subestimar. Bitwarden publica los clientes, y esos clientes se actualizan automáticamente desde las tiendas de aplicaciones durante la noche. Vaultwarden tiene que seguirles el ritmo. Cuando una versión del cliente cambia el contrato de la API, un Vaultwarden sin actualizar recibe un cliente que ya ha cambiado, y los inicios de sesión o la sincronización empiezan a fallar en dispositivos que no modificó.

Las notas de la versión incluyen un ejemplo concreto. Vaultwarden 1.37.0 indica: "This update is required for support with clients with version 2026.7.0+, please update before reporting any issues with them." En agosto de 2026, la versión actual es 1.37.1, publicada el 29 de julio de 2026.

Dos hábitos evitan que esto se convierta en un problema. Fije una etiqueta de imagen específica en lugar de latest, para que una descarga desatendida no actualice el servidor a las 3:00. Después, supervise el canal de versiones y actualice de forma deliberada. Lea primero las notas, porque los cambios incompatibles aparecen allí y en ningún otro sitio. Por ejemplo, la versión 1.35.5 invalidó durante la actualización todos los tokens existentes para recordar la autenticación de dos factores. Esto cerró la sesión de los usuarios después de un paso que creían haber guardado.

La implementación estándar de Bitwarden presenta el problema inverso. Las actualizaciones se ejecutan mediante ./bitwarden.sh updateself y ./bitwarden.sh update, y la actualización aplica migraciones de base de datos. Una copia de seguridad creada antes de la migración no permite revertir el esquema posterior a ella. Por tanto, cree la copia de seguridad y anote la versión en la que la creó.

Copias de seguridad: aquí es donde realmente se pierden los vaults

El directorio de datos de Vaultwarden es el servidor. Conserve estos elementos:

  • db.sqlite3
  • todos los archivos rsa_key*, incluidos rsa_key.pem y rsa_key.der
  • attachments/
  • config.json
  • sends/

No copie db.sqlite3 con cp mientras el contenedor esté en ejecución. SQLite puede estar escribiendo en ese momento, por lo que la copia puede ser una base de datos dañada que parezca correcta hasta que la restaure. Use en su lugar la API de copias de seguridad en línea:

sqlite3 data/db.sqlite3 ".backup '/path/to/backups/db-$(date '+%Y%m%d-%H%M').sqlite3'"

Desde 1.32.1, la imagen también incluye el comando /vaultwarden backup. En cualquier caso, la instantánea permanece en el mismo disco que el original hasta que la mueve. Por eso, envíela fuera del servidor mediante instantáneas de restic en almacenamiento externo con una programación periódica. Los archivos rsa_key son tan importantes como la base de datos: el servidor firma sus tokens de sesión con esa clave. Por tanto, restaurar una base de datos junto a una clave recién generada cierra la sesión de todos los usuarios y rompe las invitaciones de organización que estuvieran en curso.

Bitwarden estándar realiza copias de seguridad de una parte mayor de sus datos. El contenedor mssql escribe copias nocturnas de la base de datos en ./bwdata/mssql/backups y conserva 30 días de copias, siempre que el contenedor esté en ejecución. También puede forzar una copia:

docker exec -i bitwarden-mssql /backup-db.sh

Los directorios que debe conservar son ./bwdata/env (variables de entorno, incluidas las contraseñas de la base de datos y de los certificados), ./bwdata/core/attachments, ./bwdata/mssql/data y ./bwdata/core/aspnet-dataprotection. Este último es el que más se olvida. Contiene material de protección de datos del nivel del framework, incluidos tokens de autenticación y algunas columnas de la base de datos. Por tanto, restaurar la base de datos sin este material deja ilegibles las columnas que protege. Bitwarden lite no realiza copias de seguridad automáticas, así que elegir lite implica mantener una programación de volcados, exactamente igual que con Vaultwarden.

Migrar en cualquier dirección

La migración se realiza mediante los clientes, no mediante los servidores, porque exportar e importar son funciones del cliente. Por eso, ambas direcciones siguen el mismo procedimiento.

Cada usuario exporta los datos desde la bóveda web o la aplicación de escritorio, crea una cuenta en el servidor nuevo e importa los datos. Los formatos disponibles son texto sin formato .json, texto sin formato .csv, cifrado .json y un .zip que contiene el JSON y los archivos adjuntos de las bóvedas individuales. Las tarjetas, las identidades, las passkeys almacenadas y las claves SSH sólo se conservan en los formatos JSON, por lo que una migración mediante CSV las elimina sin mostrar ningún aviso. Ningún formato de exportación incluye elementos de la papelera ni Sends, y los datos propiedad de una organización no forman parte de la exportación individual.

Trate una exportación en texto sin formato como un secreto activo, porque eso es exactamente lo que contiene: toda su bóveda en texto claro en el disco. Expórtela, impórtela y elimínela en la misma sesión. Nunca la envíe por correo electrónico ni por chat.

Hay un problema que suele aparecer durante la migración. Una exportación cifrada vinculada a su cuenta no se puede importar en otra cuenta, y migrar entre servidores implica, por definición, utilizar otra cuenta. En su lugar, seleccione la opción de exportación protegida con contraseña, porque es portable.

La migración de Vaultwarden a Bitwarden estándar es más compleja, porque la estructura de la organización no se incluye en una exportación. Debe recrear la organización en el servidor nuevo, invitar de nuevo a los usuarios y hacer que cada usuario importe su propia bóveda. Planifique una ventana de mantenimiento para realizarla. No espere a descubrir este problema el mismo día.

¿Cuál deberías ejecutar?

Ejecuta Vaultwarden si eres una sola persona, una familia o gestionas un laboratorio doméstico en un VPS de 1 GB o 2 GB. Organisations, Emergency Access y Send se incluyen sin coste, el consumo de memoria en reposo es aproximadamente el de una pestaña del navegador y la copia de seguridad consiste en un archivo SQLite más un directorio pequeño. Esta combinación explica por qué domina la gestión de contraseñas autoalojada.

Ejecuta el servidor propio de Bitwarden cuando otras personas dependan de él profesionalmente: una empresa que necesite un contrato de soporte, un requisito de cumplimiento que especifique el proveedor o funciones empresariales por las que ya pagas. Asigna 4 GB a la implementación estándar y considera el archivo de licencia y el ID de instalación parte de la implementación, no simples trámites administrativos.

Bitwarden lite ocupa una posición intermedia poco clara. Es código del proveedor con una fracción del consumo, lo que resulta realmente atractivo, pero Bitwarden lo documenta para uso personal y laboratorios domésticos, y no tiene copias de seguridad automáticas. Asumes la carga operativa de Vaultwarden sin su conjunto de funciones gratuito. Elígelo cuando el código del proveedor te importe más que las funciones y estés dispuesto a administrar la base de datos por tu cuenta.

Si todavía estás decidiendo qué otros servicios alojará el servidor, la lista ampliada de opciones de autoalojamiento sitúa esta elección junto a los demás servicios que compiten por la misma RAM.

FAQ

¿Vaultwarden es suficientemente seguro para usarlo como gestor de contraseñas real?

Para uso personal y familiar, sí, con ciertas condiciones. Los clientes cifran la bóveda antes de enviarla al servidor, por lo que Vaultwarden nunca ve la contraseña maestra ni datos en texto plano. El software ha sido revisado externamente: BSI encargó a sus socios de seguridad de mgm que lo probaran entre febrero y mayo de 2024, y ERNW informó de una omisión de autenticación que se corrigió en 1.32.5. Mantenga la versión actualizada, mantenga deshabilitada la página de administración o protéjala con un ADMIN_TOKEN con hash Argon2, y expóngala sólo mediante HTTPS. Una empresa que necesite soporte del proveedor o documentación de auditoría debería ejecutar el servidor propio de Bitwarden.

¿Cuánta RAM necesita Vaultwarden en comparación con Bitwarden autohospedado?

En instalaciones inactivas medidas con docker stats --no-stream, Vaultwarden con SQLite ocupó aproximadamente 58 MB en un contenedor, mientras que la implementación estándar de Bitwarden ocupó cerca de 2,400 MB distribuidos entre 12 contenedores, la mayor parte correspondiente a la base de datos MSSQL. Bitwarden documenta 2 GB como mínimo y 4 GB como cantidad recomendada para la pila estándar, y 200 MB para Bitwarden lite. Vaultwarden funciona en un VPS de 1 GB con margen suficiente.

¿Necesito una licencia de Bitwarden para autohospedarlo?

No para una bóveda individual gratuita. Ejecutar el servidor es gratuito. Se necesita un archivo de licencia para desbloquear las funciones premium individuales y cualquier plan de organización de pago, incluidos Families, Teams y Enterprise. Descargue el archivo desde la bóveda web en la nube y cárguelo en su instancia. Las licencias de organización se emiten para el ID de instalación almacenado en ./bwdata/env/global.override.env. Vaultwarden no necesita licencia y habilita por sí mismo las funciones de organización.

¿Puedo pasar de Vaultwarden a Bitwarden más adelante o volver atrás?

Sí, en ambas direcciones, mediante los clientes. Cada usuario exporta su bóveda desde la bóveda web o la aplicación de escritorio y la importa en el nuevo servidor después de crear allí una cuenta. La exportación .zip incluye los archivos adjuntos de las bóvedas individuales. Los formatos JSON incluyen tarjetas, identidades, claves de acceso y claves SSH. Los elementos de la papelera y los Sends no aparecen en ningún formato de exportación. Los elementos propiedad de una organización deben exportarse por separado mediante un propietario. Por tanto, planifique recrear la organización y volver a invitar a los usuarios en el nuevo servidor.

#vaultwarden#bitwarden#password-manager#self-hosting#docker