Por qué migrar ahora
Desde el 27 de marzo de 2026, la suscripción individual de 1Password facturada anualmente pasó de {{35,88 $/año}} a {{47,88 $/año}}, una subida del 33%. En enero de 2026, Bitwarden.com ya había elevado su plan Premium de 9,99 $ a 19,80 $ al año — casi el doble. Ambas subidas simultáneas hicieron que el self-hosting fuera económicamente evidente para los desarrolladores que ya disponen de un VPS: Vaultwarden funciona con menos de 50 MB de RAM, sin coste de licencia de software, a un coste mensual fijo.
La objeción más común — «administrar mi propio gestor de contraseñas es arriesgado» — no se sostiene frente a la arquitectura de Vaultwarden. El cifrado se realiza íntegramente del lado del cliente, usando AES-256-CBC con derivación de clave PBKDF2 o Argon2id: el servidor nunca ve sus contraseñas en texto plano, ni siquiera en caso de compromiso total de la máquina.
Lo que Vaultwarden aporta a un desarrollador
- Cifrado AES-256-CBC del lado del cliente — sus contraseñas nunca salen de su dispositivo en texto plano, independientemente de la configuración del servidor.
- Compatibilidad total con todos los clientes oficiales de Bitwarden: extensiones de navegador, apps iOS, Android, escritorio y CLI, sin modificaciones.
- Huella de memoria ligera — el proceso de Vaultwarden solo consume entre 10 y 30 MB de RAM; menos de 100 MB con el contenedor Docker.
- Coste fijo — un VPS de 1 vCPU / 512 MB es suficiente para uso personal o un equipo pequeño, sin suscripción SaaS variable.
- Control total de los datos — la copia de seguridad, la restauración, la elección del datacenter y el período de retención permanecen en sus manos.
- Soporte multi-perfil y organizaciones — Vaultwarden admite la gestión de organizaciones y el uso compartido de bóvedas, igual que Bitwarden.com.
- Actualizaciones desacopladas — usted decide cuándo actualizar el servidor; los clientes oficiales de Bitwarden gestionan su propio ciclo de versiones.
Requisitos previos
Antes de iniciar la migración, verifique que dispone de todos los elementos siguientes.
En el servidor: un VPS con al menos 1 vCPU y 512 MB de RAM, Docker y Docker Compose instalados, un nombre de dominio apuntando a la IP del servidor y un proxy inverso (Caddy o Nginx) configurado para la terminación TLS. El despliegue de Vaultwarden se cubre en el artículo Desplegar Vaultwarden en un VPS — esta guía asume que su instancia ya está en línea y accesible por HTTPS.
En su máquina local: 1Password v8 o superior instalado (necesario para exportar en .1pux), Bitwarden CLI (bw) instalado vía npm (npm install -g @bitwarden/cli) o el binario oficial, y Node.js ≥ 18 si instala vía npm.
Paso 1 — Exportar su bóveda de 1Password
Abrir el diálogo de exportación
En macOS, abra 1Password y vaya a Archivo → Exportar. En Windows, haga clic en los puntos suspensivos (…) en la parte superior de la barra lateral, luego en Exportar. Seleccione la cuenta a exportar — si tiene varias bóvedas, puede exportar toda la cuenta en una sola operación.
Elegir el formato 1PUX
En el cuadro de diálogo, introduzca la contraseña de su cuenta 1Password para confirmar la operación. A continuación, seleccione el formato 1Password Unencrypted Export (.1pux). Este formato basado en JSON preserva la estructura completa — campos personalizados, notas seguras, identidades, contraseñas de aplicación — a diferencia del CSV, que trunca los metadatos.
Guardar el archivo en un lugar seguro
Elija una carpeta local cifrada (con FileVault o BitLocker activado) para almacenar el archivo
.1pux. Este archivo contiene todos sus secretos en texto plano estructurado — no lo deje en una carpeta de descargas ni lo envíe por correo electrónico. Una vez completada la migración, elimínelo de forma segura.
Paso 2 — Importar con Bitwarden CLI
Apuntar el CLI a su instancia de Vaultwarden
Por defecto,
bwapunta abitwarden.com. Rediríjalo a su instancia antes de cualquier otra operación:bw config server https://vault.your-domain.comVerifique la respuesta: el CLI debe confirmar
Saved setting 'serverUrl'.Iniciar sesión y desbloquear la bóveda
Autentíquese con sus credenciales de Vaultwarden (correo + contraseña maestra creada durante la configuración inicial):
bw login [email protected]El CLI solicitará su contraseña maestra de forma interactiva. Una vez conectado, desbloquee la bóveda y exporte la clave de sesión:
export BW_SESSION=$(bw unlock --raw)Todos los comandos posteriores utilizan esta variable implícitamente para acceder a la bóveda descifrada.
Ejecutar la importación del archivo .1pux
Importe su exportación de 1Password usando el formato
1password1pux:bw import 1password1pux /ruta/al/export.1puxEl CLI muestra el progreso y un resumen del número de elementos importados por tipo (logins, notas, identidades, tarjetas). Si su cuenta de 1Password contenía varias bóvedas, todas se importan en una sola bóveda de Bitwarden, recreando carpetas para preservar la estructura.
Si aparece el error
Invalid format, verifique que el archivo tiene la extensión.1puxy que usa una versión reciente del CLI (bw --version).Verificar la importación en un cliente de Bitwarden
Abra la extensión de Bitwarden para el navegador o la app de escritorio, apunte el servidor a su instancia de Vaultwarden, luego inicie sesión. Navegue por sus bóvedas y compruebe una muestra de contraseñas — en especial las entradas con campos personalizados, notas seguras e identidades.
Paso 3 — Vaultwarden en su VPS
Si su instancia de Vaultwarden aún no está desplegada, siga la guía Desplegar Vaultwarden en un VPS, que cubre la configuración completa de Docker. En resumen, tres puntos son imprescindibles antes de importar cualquier dato:
HTTPS obligatorio. Los clientes de Bitwarden rechazan conectarse a un servidor sin TLS válido. Caddy o Nginx con Let's Encrypt (certbot) son suficientes; verifique que su dominio es accesible por https:// antes de configurar el CLI.
Variable DOMAIN correcta. En su docker-compose.yml, la variable DOMAIN=https://vault.your-domain.com debe coincidir exactamente con la URL declarada en bw config server, sin barra diagonal final.
Copia de seguridad del volumen antes de importar. La importación escribe en la base de datos SQLite de Vaultwarden (/data/db.sqlite3). Haga una instantánea de su volumen Docker antes de ejecutar bw import, para poder revertir si la importación falla.
1Password vs Bitwarden.com vs Vaultwarden
Desplace la tabla
| Criterio | 1Password | Bitwarden.com | Vaultwarden (self-hosted) |
|---|---|---|---|
| Coste anual (individual) | {{47,88 $/año}} desde marzo 2026 | {{19,80 $/año}} desde ene. 2026 (Premium) | Coste del VPS únicamente |
| Control de datos | Servidores de 1Password | Servidores de Bitwarden | Su VPS, su datacenter |
| Cifrado | AES-256-CBC del lado del cliente | AES-256-CBC del lado del cliente | AES-256-CBC del lado del cliente (idéntico) |
| Clientes móviles oficiales | Apps dedicadas de 1Password | iOS, Android, escritorio, extensión | Clientes oficiales de Bitwarden, sin modificar |
| Extensión de navegador | 1Password X | Extensión de Bitwarden | Extensión de Bitwarden (mismo binario) |
| Actualizaciones | Automáticas (SaaS) | Automáticas (SaaS) | Manuales (usted elige el momento) |
| RAM requerida en servidor | N/A (SaaS) | N/A (SaaS) | 10–30 MB (proceso), < 100 MB (Docker) |
Copia de seguridad y prueba de restauración
Una vez completada la importación, configure copias de seguridad automáticas del volumen de Vaultwarden antes de desactivar su cuenta de 1Password. La guía Copias de seguridad con Restic en VPS cubre una estrategia 3-2-1 adaptada a Docker. Pruebe la restauración en una máquina diferente — no solo la presencia del archivo de copia de seguridad — antes de considerar la migración completada. Una bóveda de contraseñas sin restauración probada no es una copia de seguridad.
Solución de problemas — errores frecuentes
Invalid format al importar. El formato esperado por el CLI es exactamente 1password1pux (todo junto, en minúsculas). Asegúrese de no usar 1password solo ni 1pux — estos nombres corresponden a otros formatos. Liste los formatos disponibles con bw import --formats | grep 1password.
ERR_CERT_AUTHORITY_INVALID en los clientes. Los clientes de Bitwarden requieren un certificado TLS firmado por una autoridad reconocida — se rechaza cualquier certificado autofirmado. Verifique que Let's Encrypt ha emitido un certificado válido para su dominio y que no ha expirado.
Bóveda bloqueada en modo migración. Si importa desde una cuenta existente de Bitwarden.com antes de cambiar a Vaultwarden, sus elementos permanecen cifrados con la clave de la cuenta en la nube. Tras bw config server apuntando a su instancia, cree una nueva cuenta local: el CLI no migra la clave de cifrado entre instancias.
La importación se detiene en una entrada SSH. La versión CLI 2026.7.0 incluye una corrección para una regresión conocida que bloqueaba la importación de claves SSH en formato 1pux (issue bitwarden/clients #20432). Actualice con npm install -g @bitwarden/cli@latest.
Salir de 1Password con confianza
Una vez verificada la importación en Vaultwarden — abra cada tipo de elemento (logins, notas, identidades, tarjetas) en un cliente de Bitwarden y compruebe una muestra representativa — puede desactivar su cuenta de 1Password. No espere a que expire su suscripción para eliminar el archivo .1pux local: contiene todos sus secretos en texto plano estructurado.
Para ir más lejos en la segurización de su infraestructura, los artículos Refuerzo inicial de un servidor Linux y Passbolt para un equipo cubren los siguientes pasos.