Tropic Host

Vaultwarden: qué es y cómo instalarlo en un VPS

6 min de lectura
Tropic
Vaultwarden: qué es y cómo instalarlo en un VPS

Vaultwarden: instalación de tu propio gestor de contraseñas en un VPS

Vaultwarden permite guardar las contraseñas en tu propio servidor y sincronizarlas entre el ordenador, el teléfono y el navegador. Para ello se utilizan las aplicaciones y extensiones oficiales de Bitwarden, en las que se indica la dirección de tu propio servidor.

A continuación veremos qué VPS necesita Vaultwarden, cómo ejecutarlo en Ubuntu mediante Docker Compose, desactivar el registro abierto, activar HTTPS y configurar las copias de seguridad.

Vaultwarden en cinco pasos

El plan mínimo de puesta en marcha:

  1. Crear un VPS con Ubuntu y dirigir hacia él un subdominio, por ejemplo vault.example.com.
  2. Instalar Docker y Docker Compose.
  3. Ejecutar Vaultwarden junto con Caddy para obtener HTTPS automáticamente.
  4. Crear la primera cuenta y desactivar el registro abierto.
  5. Activar la autenticación de dos factores, las actualizaciones y las copias de seguridad.

Para una bóveda personal o una familia pequeña basta con la base de datos SQLite integrada. Normalmente no hace falta un servidor PostgreSQL independiente.

Qué es Vaultwarden

Vaultwarden es una implementación no oficial del servidor de la API de Bitwarden, escrita en Rust y diseñada para un despliegue autoalojado. Es compatible con los clientes oficiales de Bitwarden: interfaz web, aplicaciones móviles y de escritorio, extensiones del navegador y CLI.

Los datos de la bóveda se cifran en el dispositivo del usuario antes de enviarse al servidor. El VPS sincroniza la base de datos cifrada, pero no conoce la contraseña maestra y no puede recuperarla si se pierde.

Vaultwarden no es un producto oficial de Bitwarden. El propietario es responsable de las actualizaciones, la disponibilidad, HTTPS, las copias de seguridad y la seguridad del VPS.

Vaultwarden y Bitwarden: cuál es la diferencia

ParámetroBitwarden CloudVaultwarden
ServidorInfraestructura de BitwardenTu VPS o servidor doméstico
AplicacionesClientes de BitwardenLos mismos clientes en modo Self-hosted
MantenimientoLo realiza el proveedorLo realiza el propietario
Control de las copias de seguridadLimitado por el servicioCompleto
Puesta en marchaRegistro de una cuentaDominio, Docker y configuración del VPS

Vaultwarden es adecuado para quienes desean controlar la parte del servidor y están dispuestos a actualizar Linux y comprobar las copias de seguridad. Un servicio en la nube resulta más práctico si no quieres ocuparte de la administración. El autoalojamiento no hace que el sistema sea seguro de forma automática: transfiere la responsabilidad al propietario.

Requisitos del servidor para Vaultwarden

Para uso personal, una configuración inicial razonable es:

  • 1 vCPU;
  • 1–2 GB de RAM;
  • 10–20 GB de SSD o NVMe;
  • Ubuntu 24.04 LTS;
  • una IP pública y un dominio;
  • los puertos 80 y 443 abiertos.

Se trata de un margen práctico para Ubuntu, Docker, Caddy y las actualizaciones, no de un mínimo estricto del proyecto. Para decenas de usuarios, una gran cantidad de archivos adjuntos o varios contenedores, es mejor elegir al menos 2 GB de RAM.

Cómo instalar Vaultwarden en un VPS

En el ejemplo se utilizan Ubuntu 24.04 y el subdominio vault.example.com. Sustitúyelo por tu propia dirección en todos los archivos.

1. Configura DNS y prepara Ubuntu

Crea un registro DNS A que apunte a la dirección IPv4 del VPS. Después, conéctate mediante SSH:

ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw enable

No cierres la sesión SSH actual hasta comprobar que una nueva conexión funciona.

2. Instala Docker y Docker Compose

Añade el repositorio oficial de Docker:

apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
  -o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc

tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF

apt update
apt install -y docker-ce docker-ce-cli containerd.io \
  docker-buildx-plugin docker-compose-plugin
docker compose version

3. Crea la configuración

mkdir -p /opt/vaultwarden
cd /opt/vaultwarden

Crea compose.yaml:

services:
  vaultwarden:
    image: vaultwarden/server:latest
    container_name: vaultwarden
    restart: unless-stopped
    environment:
      DOMAIN: "https://vault.example.com"
      SIGNUPS_ALLOWED: "true"
    volumes:
      - ./vw-data:/data

  caddy:
    image: caddy:2-alpine
    container_name: vaultwarden-caddy
    restart: unless-stopped
    depends_on:
      - vaultwarden
    ports:
      - "80:80"
      - "443:443"
    volumes:
      - ./Caddyfile:/etc/caddy/Caddyfile:ro
      - ./caddy-data:/data
      - ./caddy-config:/config

Crea el archivo Caddyfile:

vault.example.com {
    reverse_proxy vaultwarden:80
}

Solo Caddy queda expuesto al exterior. El contenedor de Vaultwarden es accesible dentro de la red Docker y los datos se guardan en /opt/vaultwarden/vw-data. En la configuración actual no se necesita un puerto independiente para WebSocket.

4. Inicia Vaultwarden

docker compose up -d
docker compose ps
docker compose logs --tail=100 caddy

Abre https://vault.example.com. Caddy obtendrá automáticamente un certificado TLS si DNS ya apunta al VPS y los puertos 80 y 443 son accesibles. Si el sitio no se abre, comprueba DNS, el cortafuegos y si hay otro servidor web utilizando esos puertos.

5. Crea una cuenta y cierra el registro

Registra la primera cuenta. Utiliza una contraseña maestra larga y única y guarda una copia de emergencia fuera de Vaultwarden: el administrador del servidor no podrá restablecer ni recuperar la contraseña maestra.

Después del registro, cambia lo siguiente en compose.yaml:

SIGNUPS_ALLOWED: "false"

Aplica el ajuste:

docker compose up -d

Ahora las personas ajenas no podrán crear cuentas. Para añadir un nuevo usuario, puedes activar temporalmente el registro o configurar invitaciones.

Cómo conectar la aplicación Bitwarden

No es necesario instalar un cliente independiente para Vaultwarden. En la pantalla de inicio de sesión de la aplicación o extensión de Bitwarden, selecciona Self-hosted e indica:

https://vault.example.com

Utiliza esta dirección en el ordenador, el teléfono y el navegador. Para migrar, importa un archivo exportado desde el gestor de contraseñas anterior. Elimina cualquier archivo CSV o JSON sin cifrar inmediatamente después de la transferencia y no lo envíes por correo electrónico ni mediante enlaces públicos.

Configuración segura de Vaultwarden

Después de la puesta en marcha, realiza varias acciones:

  • activa TOTP o WebAuthn y guarda los códigos de recuperación por separado;
  • mantén SIGNUPS_ALLOWED desactivado;
  • utiliza claves SSH y actualiza Ubuntu con regularidad;
  • no publiques el puerto interno del contenedor de Vaultwarden;
  • no ejecutes contenedores dudosos en el mismo VPS;
  • comprueba que las copias de seguridad pueden restaurarse.

El panel /admin normalmente no es necesario para una bóveda personal. Si lo activas, utiliza un token largo en forma de hash Argon2 y, si es posible, limita el acceso por dirección IP o VPN. No es recomendable guardar un ADMIN_TOKEN en texto sin formato.

Crea una copia de seguridad antes de actualizar y después ejecuta:

cd /opt/vaultwarden
docker compose pull
docker compose up -d

El servidor debe actualizarse con regularidad: los clientes de Bitwarden se publican de forma independiente, por lo que una versión demasiado antigua de Vaultwarden puede perder la compatibilidad con ellos.

Copias de seguridad de Vaultwarden

La base de datos SQLite principal se encuentra en vw-data/db.sqlite3, mientras que los archivos adjuntos se guardan como archivos independientes. No copies una base de datos en funcionamiento con el comando habitual cp: una escritura en ese momento puede hacer que la copia sea incoherente.

Crea una instantánea segura con el comando integrado:

docker exec vaultwarden /vaultwarden backup

En el directorio de datos aparecerá un archivo independiente db_.sqlite3. Guarda junto a él attachments, sends, config.json si se ha creado y los archivos rsa_key.

Una copia de seguridad en el mismo VPS no protege frente a la eliminación del servidor ni a una avería del disco. Envía automáticamente las copias a otro dispositivo o a un almacenamiento de objetos independiente, preferiblemente con cifrado adicional. Realiza periódicamente una restauración de prueba.

Qué VPS elegir para Vaultwarden

Para una bóveda personal o familiar basta con un VPS Linux básico con 2 GB de RAM. Esta cantidad deja margen para Ubuntu, Docker, Caddy, las actualizaciones y las copias de seguridad automáticas.

Vaultwarden puede ejecutarse en un VPS inicial de tropic.host y los recursos pueden ampliarse más adelante si se añaden otros servicios autoalojados al servidor. Para un gestor de contraseñas son más importantes una red estable, una dirección pública permanente y un disco fiable que los núcleos de CPU adicionales.

Un servidor doméstico también es válido, pero en ese caso tendrás que garantizar el acceso externo, HTTPS, una alimentación estable y la recuperación tras fallos. Un VPS suele ser más sencillo si la bóveda debe funcionar desde cualquier red.

Conclusión

Vaultwarden es un práctico gestor de contraseñas autoalojado para quienes quieren utilizar los clientes de Bitwarden manteniendo la parte del servidor en su propia infraestructura. Para empezar basta con un VPS pequeño, un dominio, Docker Compose y Caddy.

La responsabilidad principal comienza después de la instalación: hay que desactivar el registro, activar 2FA, actualizar los contenedores y conservar copias de seguridad verificadas fuera del servidor.

FAQ

¿Se puede instalar Vaultwarden sin un dominio?

Técnicamente se puede utilizar una dirección local, pero la bóveda web necesita un contexto HTTPS seguro. Para acceder desde diferentes dispositivos, es más sencillo utilizar un dominio y un certificado TLS.

¿Cuánta memoria RAM necesita Vaultwarden?

Para uno o varios usuarios, 1 GB de RAM suele ser suficiente. Un VPS con 2 GB ofrece un margen más cómodo para el sistema, Docker, Caddy y las actualizaciones.

¿Vaultwarden funciona con la aplicación móvil de Bitwarden?

Sí. En la pantalla de inicio de sesión, selecciona un servidor autoalojado e introduce la dirección HTTPS completa de tu instancia de Vaultwarden.

¿Qué ocurre si el VPS no está disponible temporalmente?

Los datos sincronizados anteriormente suelen permanecer en la caché local cifrada del cliente. Sin embargo, la sincronización, el inicio de sesión en un dispositivo nuevo y la recepción de cambios no funcionarán hasta que se restablezca el servidor.

¿Se puede recuperar una contraseña maestra olvidada mediante /admin?

No. El administrador puede gestionar el servidor y las cuentas, pero no posee la clave de descifrado de la bóveda del usuario. La contraseña maestra y los códigos de recuperación deben guardarse por separado.