Curso
En este artículo, te guiaré a través de la instalación de Bitwarden con Docker en un servidor Ubuntu nuevo, la configuración de HTTPS con Let's Encrypt y la resolución de problemas comunes de configuración.
Si acabas de empezar con Docker, te recomendamos que te inscribas en nuestro Introducción a Docker o cursos de Docker intermedio : aprende los fundamentos antes de gestionar múltiples configuraciones de contenedores.
¿Qué es la implementación de Docker de Bitwarden?
Bitwarden tiene una instalación oficial instalación basada en Docker que te permite ejecutar un gestor de contraseñas según tus propios términos.
Todo lo que tienes que hacer es ejecutar un único script de instalación. No es necesario instalar manualmente bases de datos, servidores web ni escribir código. Docker extrae contenedores preconfigurados, establece la red entre ellos y pone todo en funcionamiento. Las actualizaciones funcionan de la misma manera: solo tienes que ejecutar el script de actualización y Docker se encarga del resto.
La configuración de Docker de Bitwarden se ejecuta como varios contenedores que funcionan juntos. Obtienes un contenedor de almacén web para la interfaz de usuario, un contenedor API para gestionar solicitudes, un contenedor de base de datos para almacenar datos cifrados del almacén y servicios de apoyo para archivos adjuntos e iconos. Docker Compose coordina estos contenedores para que puedan comunicarse entre sí.
Todo está preconfigurado para ti.
Este enfoque multicontensor significa que cada componente se ejecuta de forma aislada. Si necesitas modificar la base de datos, puedes reiniciar solo ese contenedor sin tocar la interfaz web. Si deseas consultar los registros, cada servicio tiene su propio flujo de registros.
La implementación oficial utiliza Docker Compose para gestionar todo a través de un único archivo de configuración, lo que hace que todo el sistema sea más fácil de entender y mantener que una instalación de servidor tradicional.
Requisitos antes de ejecutar Bitwarden con Docker
Necesitas tener algunas cosas preparadas antes de poder ejecutar Bitwarden, pero ninguna de ellas requiere hardware empresarial ni configuraciones complejas.
Un servidor Linux o una máquina virtual es tu punto de partida. Ubuntu Server es realmente todo lo que necesitas. Puedes utilizar una instancia en la nube de AWS, DigitalOcean o Linode. Una instancia básica con 2 GB de RAM y 20 GB de almacenamiento es suficiente para ejecutar Bitwarden para uso personal o equipos pequeños.
Docker y Docker Compose se encargan de la instalación propiamente dicha. Instalarás Docker Engine (no Docker Desktop) y Docker Compose como paquetes independientes. La mayoría de las distribuciones de Linux incluyen ambos en sus gestores de paquetes.
Se requiere un nombre de dominio porque Bitwarden necesita HTTPS para funcionar. No puedes ejecutarlo en una dirección IP. Tendrás que dirigir tu dominio a la dirección IP de tu servidor antes de iniciar la instalación.
Los puertos 80 y 443 deben estar abiertos en tu servidor. El puerto 80 gestiona el tráfico HTTP y la validación de certificados, mientras que el puerto 443 se encarga del tráfico HTTPS propiamente dicho. Configura tu firewall y los grupos de seguridad de tu proveedor de servicios en la nube para permitir las conexiones entrantes en ambos puertos.
También necesitas conocimientos básicos sobre la línea de comandos. Te conectarás por SSH a tu servidor, ejecutarás scripts de instalación y editarás archivos de configuración. Si sabes cómo navegar por los directorios y ejecutar comandos con sudo, ya estás listo.
¡Y eso es todo! Hay cosas que debes saber, claro, pero casi cualquier persona con un poco de conocimientos tecnológicos puede hacerlo. Déjame mostrarte cómo hacerlo.
Cómo instalar Bitwarden usando Docker (método oficial)
Este tutorial utiliza un droplet de Ubuntu de DigitalOcean y Cloudflare para la gestión del dominio y el DNS. Eres libre de utilizar otros proveedores y servicios, pero si quieres seguir el curso sin estrés, te recomiendo que elijas los mismos.
Configuración del entorno
En primer lugar, crea una instancia de DigitalOcean con Ubuntu 24.04 LTS. El droplet básico de 12 $ al mes (2 GB de RAM, 1 CPU, 50 GB de SSD) funciona bien con Bitwarden para uso personal o equipos pequeños. Elige una región de centro de datos cercana a ti para obtener mejores tiempos de respuesta. No olvides añadir una clave SSH existente o crear una nueva.
Después de que se inicie Droplet, toma nota de su dirección IP pública desde el panel de control de DigitalOcean.

Detalles de la gota de DigitalOcean
A continuación, configura el DNS en Cloudflare. Inicia sesión en tu cuenta de Cloudflare y añade un registro A que dirija tu dominio a la dirección IP del droplet:
-
Tipo:
A -
Nombre:
vault(o tu subdominio preferido) -
Dirección IPv4: La IP de tu droplet
-
Estado del proxy: Desactivado (nube gris)
Desactiva el proxy de Cloudflare para la configuración inicial. Let's Encrypt necesita acceso directo a tu servidor para verificar la propiedad del dominio. Puedes habilitar el proxy después de que Bitwarden se esté ejecutando y se hayan generado los certificados.
He utilizado uno de mis dominios activos para los fines de este artículo:

Configuración del DNS de Cloudflare
La propagación del DNS tarda unos minutos. Ejecuta este comando de terminal para verificar que los cambios sean visibles:
nslookup vault.yourdomain.com
Deberías ver la dirección IP de tu droplet en la respuesta.

Resultados de Nslookup
Ahora puedes conectarte a tu droplet a través de SSH:
ssh root@your-droplet-ip
Y ya estás dentro:

Conexión a la instancia de Ubuntu
Bien, lo primero que hay que hacer es actualizar los paquetes del sistema. Ejecuta el siguiente comando:
apt update && apt upgrade -y
Ahora ya estás listo para instalar Docker y Bitwarden.
Como se mencionó anteriormente, necesitarás tanto Docker como Docker Compose. Ejecuta estos comandos para instalarlos:
sudo apt install docker.io docker-compose-v2 -y
sudo systemctl enable docker
sudo systemctl start docker
Ahora verifica la instalación:
docker --version
docker compose version
Deberías ver los números de versión de ambos comandos.

Versiones de Docker y Docker Compose
A continuación, te mostraré cómo instalar Bitwarden.
Descarga y preparación del instalador de Bitwarden
El instalador oficial de Bitwarden se encuentra almacenado en su repositorio GitHub. Puedes descargarlo directamente en tu servidor:
curl -Lso bitwarden.sh "https://func.bitwarden.com/api/dl/?app=self-host&platform=linux" && chmod +x bitwarden.sh
Esto descarga el script de instalación y lo hace ejecutable. El script se encarga de todo, desde la descarga de imágenes Docker y la creación de archivos de configuración hasta la configuración de la estructura de directorios.
El siguiente paso es crear un directorio donde Bitwarden almacenará tus datos:
sudo mkdir /opt/bitwarden
Ahora puedes mover el script de instalación allí:
sudo mv bitwarden.sh /opt/bitwarden/
cd /opt/bitwarden
Y, por último, ejecuta el instalador:
sudo ./bitwarden.sh install
El script crea un directorio bwdata que contiene todos los archivos de configuración, certificados, registros y archivos de base de datos de Bitwarden. Aquí es donde se encuentra todo, así que haz copias de seguridad de este directorio con regularidad.
Ejecutar la instalación
El instalador te hace varias preguntas. Responde con cuidado, porque si te equivocas tendrás que empezar de nuevo.
Introduce tu nombre de dominio exactamente como aparece en tus registros DNS. Si configuras vault.yourdomain.com en Cloudflare, introduce esa cadena exacta. No incluyas https:// ni barras inclinadas al final.
Elige Let's Encrypt para los certificados SSL. El instalador se encargará automáticamente de la generación y renovación de certificados. Si utilizas el proxy de Cloudflare (la nube naranja), es posible que tengas que desactivarlo temporalmente durante la configuración inicial para que Let's Encrypt pueda verificar tu dominio.
Introduce tu dirección de correo electrónico. Aquí es donde recibirás los recordatorios sobre la caducidad de tu certificación.

Instalación de Bitwarden (1)
Bitwarden descargará las imágenes Docker necesarias. Tardará aproximadamente un minuto y, a continuación, aparecerá otra serie de indicaciones.
Elige un nombre para la base de datos. No hace falta ser creativo aquí, vault funciona perfectamente.

Instalación de Bitwarden (2)
A continuación, la instalación procederá a descargar imágenes Docker adicionales.
Obtén el ID y la clave de instalación en. Abre el página de Bitwarden Host e introduce tu correo electrónico de administrador y tu región. A continuación, obtendrás ambos valores: cópialos y pégalos cuando se te solicite durante la instalación.

ID y clave de instalación de Bitwarden
Y eso es todo, la instalación ha finalizado:

Instalación de Bitwarden (3)
El script genera archivos de configuración en ./bwdata/config.yml y ./bwdata/env/global.override.env. Puedes editar estos archivos directamente si necesitas cambiar la configuración más adelante.
Lo único que queda por hacer ahora es iniciar Bitwarden:
sudo ./bitwarden.sh start
Docker extrae todas las imágenes necesarias e inicia los contenedores. Esto tarda unos minutos la primera vez que se ejecuta. El script muestra el progreso a medida que se inicia cada contenedor.

Instalación de Bitwarden (4)
Después de un par de minutos, deberías ver un mensaje « Bitwarden is up and running! » impreso en el terminal. Esto significa que la instalación se ha realizado correctamente y que puedes pasar a la siguiente sección.

Instalación de Bitwarden (5)
Verificación de la instalación
Abre tu dominio en un navegador. Deberías ver la página de inicio de sesión de Bitwarden con un certificado HTTPS válido.

Página de inicio de sesión de Bitwarden
Si ves una advertencia sobre el certificado, es probable que Let's Encrypt no haya podido verificar tu dominio. Comprueba que:
- Tus registros DNS apuntan a la dirección IP correcta.
- Los puertos 80 y 443 están abiertos en tu firewall.
- Si estás utilizando el proxy de Cloudflare, prueba a desactivarlo temporalmente.
Haz clic en «Crear cuenta» para configurar tu primer usuario. Esta cuenta se convierte en la propietaria de tu bóveda, así que utiliza una contraseña maestra segura que no olvides. Bitwarden no puede recuperar esta contraseña; si la pierdes, los datos de tu bóveda se perderán.

Creación de usuarios en Bitwarden
Después de crear tu cuenta, inicia sesión para comprobar que todo funciona correctamente. Puedes crear un elemento de inicio de sesión de prueba y asegurarte de que se guarda correctamente.

Añadir un elemento de inicio de sesión a Bitwarden
Esto funciona como esperaba, así que ahora volveré al terminal para comprobar que todo funciona bien allí también.
Ejecuta este comando para comprobar que todos los contenedores están en funcionamiento:
sudo docker ps
Deberías ver varios contenedores con nombres como bitwarden-web, bitwarden-api, bitwarden-db y otros.

Contenedores en funcionamiento
Si algún contenedor aparece como «Reiniciando» o no aparece en la lista, revisa los registros con estos comandos:
sudo docker logs bitwarden-api
sudo docker logs bitwarden-web
Si tienes algún problema al iniciar el programa, normalmente se debe a conflictos de puertos o problemas de permisos.
Los conflictos de puertos se producen si hay algo más utilizando los puertos 80 o 443. Detén el servicio conflictivo o cambia los puertos de Bitwarden en ./bwdata/config.yml.
Los errores de inicialización de la base de datos suelen deberse a problemas de permisos. Comprueba que el usuario Docker puede escribir en el directorio bwdata:
sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata
Los errores en la generación de certificados significan que Let's Encrypt no pudo comunicarse con tu servidor. Verifica que tu dominio apunta a la IP correcta y que tu firewall permite el tráfico entrante en los puertos 80 y 443.
Si los contenedores siguen reiniciándose, comprueba el espacio disponible en disco y la memoria. Bitwarden necesita al menos 2 GB de RAM para ejecutar todos tus servicios.
Configuración de HTTPS y certificados
Bitwarden requiere HTTPS para todas las conexiones. No hay forma de ejecutarlo sobre HTTP simple.
Las extensiones para navegadores y las aplicaciones móviles de Bitwarden rechazan conectarse a puntos finales HTTP. El protocolo en sí mismo requiere conexiones cifradas para proteger los datos de tu bóveda durante la transmisión.
El script de instalación configura los certificados Let's Encrypt. Let's Encrypt es una autoridad certificadora gratuita que emite certificados SSL/TLS y gestiona las renovaciones. Cuando introdujiste tu dominio durante la instalación, el script configuró la generación automática de certificados a través del protocolo ACME de Let's Encrypt.
Los certificados caducan a los 90 días, pero la configuración de Docker de Bitwarden incluye la renovación automática. Una tarea programada comprueba los certificados que están a punto de caducar y los renueva antes de que caduquen. No es necesario que hagas nada manualmente.
Los certificados personalizados tienen sentido en algunas situaciones. Si estás ejecutando Bitwarden detrás de un proxy inverso que ya gestiona la terminación SSL, puedes desactivar Let's Encrypt y dejar que el proxy gestione los certificados. Si tu organización cuenta con una autoridad certificadora interna, puedes configurar Bitwarden para que utilice esos certificados en su lugar.
Para utilizar certificados personalizados, edita ./bwdata/config.yml y configura ssl_certificate_path y ssl_key_path con tus archivos de certificado.

Uso de certificados personalizados
A continuación, reinicia Bitwarden:
sudo ./bitwarden.sh restart
Cuando falle la renovación del certificado, primero debes comprobar los registros:
sudo docker logs bitwarden-nginx
Los fallos habituales en la renovación se producen cuando:
- El DNS de tu dominio ha cambiado y ya no apunta al servidor.
- El proxy de Cloudflare está habilitado (la nube naranja), bloqueando la verificación de Let's Encrypt.
- El puerto 80 está bloqueado, lo que impide que se completen los desafíos ACME.
- Los archivos de certificado tienen permisos incorrectos.
Soluciona el problema subyacente y, a continuación, activa manualmente la renovación:
sudo docker exec bitwarden-nginx certbot renew
Si eso funciona, la tarea cron de renovación automática debería funcionar en futuros intentos.
Configuración del correo electrónico (SMTP)
Bitwarden necesita el correo electrónico para enviar invitaciones a los usuarios, enlaces para restablecer contraseñas y códigos de autenticación de dos factores.
Sin SMTP configurado, no pueden restablecer sus contraseñas. No puedes invitar a miembros del equipo a tu organización. Las solicitudes de acceso de emergencia no funcionarán. El sistema funciona, pero se pierden funciones esenciales de recuperación de cuentas y gestión de usuarios.
La configuración SMTP se encuentra en ./bwdata/env/global.override.env.

Archivo de configuración SMTP
Abre este archivo y añade la configuración de tu proveedor de correo electrónico:
globalSettings__mail__replyToEmail=no-reply@yourdomain.com
globalSettings__mail__smtp__host=smtp.gmail.com
globalSettings__mail__smtp__port=587
globalSettings__mail__smtp__ssl=false
globalSettings__mail__smtp__username=your-email@gmail.com
globalSettings__mail__smtp__password=your-app-password
El formato utiliza dos guiones bajos para representar la configuración anidada. Cada __ separa un nivel en la jerarquía de configuraciones.
Después de editar el archivo, no olvides reiniciar Bitwarden:
sudo ./bitwarden.sh restart
Comprueba el envío de correos electrónicos solicitando un restablecimiento de contraseña o enviando un correo electrónico de prueba a través del panel de administración.
A continuación, se indican algunos errores comunes de SMTP que conviene evitar:
-
Usar tu contraseña habitual de correo electrónico en lugar de una contraseña específica para la aplicación. La mayoría de los proveedores requieren que generes una contraseña específica para el acceso SMTP. Gmail las denomina «contraseñas de aplicación» y tú las creas en la configuración de seguridad de tu cuenta de Google.
-
Números de puerto incorrectos. El puerto 587 gestiona las conexiones STARTTLS, el puerto 465 gestiona SSL/TLS y el puerto 25 suele estar bloqueado por los proveedores de servicios en la nube. Si un puerto no funciona, prueba con otro.
-
Confusión entre SSL y TLS. Configura
ssl=falsepara STARTTLS en el puerto 587, ossl=truepara SSL directo en el puerto 465. La combinación de estas configuraciones provoca errores de conexión. -
El cortafuegos bloquea el SMTP saliente. Algunos proveedores de servicios en la nube bloquean el puerto de salida 25 de forma predeterminada. Utiliza los puertos 587 o 465, que rara vez se bloquean.
Si no se envían los correos electrónicos, revisa los registros del contenedor de la API:
sudo docker logs bitwarden-api
Busca errores de conexión SMTP o fallos de autenticación. Los registros muestran exactamente qué falló en la entrega del correo electrónico.
Actualización y copia de seguridad de Bitwarden
La instalación autohospedada conlleva la molestia de tener que realizar copias de seguridad y actualizaciones manuales. Por suerte, son fáciles de hacer.
Actualización de Bitwarden
Antes de actualizar, cierra Bitwarden y haz una copia de seguridad de tus datos. Las actualizaciones pueden fallar o provocar problemas, y necesitas una forma de revertir los cambios si algo sale mal.
cd /opt/bitwarden
sudo ./bitwarden.sh stop
Haz una copia de seguridad de todo el directorio bwdata:
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
Mueve esta copia de seguridad a un lugar seguro, como una unidad externa o un servidor diferente.
Ahora actualiza Bitwarden con este comando:
sudo ./bitwarden.sh update
El script de actualización descarga las últimas imágenes de Docker, actualiza los archivos de configuración si es necesario y reinicia todos los contenedores. Esto suele tardar unos minutos.

Actualización de Bitwarden
Una vez completada la actualización, comprueba que todo funciona correctamente iniciando sesión en tu almacén web y verificando que tus datos están intactos.
Si la actualización causa algún problema, simplemente restaura tu copia de seguridad:
sudo ./bitwarden.sh stop
sudo rm -rf bwdata/
sudo tar -xzf bitwarden-backup-YYYYMMDD.tar.gz
sudo ./bitwarden.sh start
Copias de seguridad
El directorio bwdata contiene todo lo que Bitwarden necesita para funcionar. Debes hacer copias de seguridad con regularidad.
Este directorio incluye:
- Tu base de datos de bóveda con todas las contraseñas cifradas
- Certificados SSL
- Archivos de configuración
- Registros y archivos adjuntos
- Definiciones de Docker Compose
Detén Bitwarden antes de realizar la copia de seguridad para garantizar la coherencia de los datos:
sudo ./bitwarden.sh stop
sudo tar -czf bitwarden-backup-$(date +%Y%m%d).tar.gz bwdata/
sudo ./bitwarden.sh start
Almacena las copias de seguridad en varias ubicaciones. Guarda una en el servidor, otra en un equipo diferente y, si es posible, otra en el almacenamiento de la nube.
Para restaurar desde la copia de seguridad, detén Bitwarden, elimina el directorio actual bwdata, extrae la copia de seguridad y reinicia. El proceso es el mismo que para revertir una actualización fallida.
Incluso puedes automatizar las copias de seguridad con una tarea cron que se ejecute diaria o semanalmente, dependiendo de la frecuencia con la que cambien los datos de tu almacén.
Problemas comunes al ejecutar Bitwarden en Docker
Incluso con una instalación limpia, pueden surgir problemas. A continuación te explicamos cómo diagnosticar los más comunes.
Los conflictos de puertos se producen cuando otro servicio ya está utilizando los puertos 80 o 443. Comprueba qué está utilizando estos puertos:
sudo netstat -tlnp | grep ':80\\|:443'
Si ves que Apache, Nginx u otro servidor web está en funcionamiento, debes detener ese servicio o cambiar los puertos de Bitwarden. Para cambiar los puertos, edita ./bwdata/config.yml y establece http_port y https_port con valores diferentes, como 8080 y 8443. A continuación, reinicia:
sudo ./bitwarden.sh restart
Los fallos en los certificados se muestran como advertencias del navegador o Bitwarden se niega a iniciarse. Comprueba los registros del contenedor nginx con este comando:
sudo docker logs bitwarden-nginx
Busca fallos en los retos ACME o errores en la validación de certificados. Estas son las causas más comunes:
- El DNS aún no apunta a tu servidor.
- El proxy de Cloudflare está bloqueando la verificación de Let's Encrypt.
- El puerto 80 está bloqueado por tu firewall.
- El dominio de tu configuración no coincide con tus registros DNS.
Soluciona el problema de DNS o del cortafuegos y, a continuación, solicita los certificados manualmente:
sudo docker exec bitwarden-nginx certbot renew --force-renewal
Los contenedores que no se inician suelen indicar problemas con la base de datos o archivos que faltan. Comprueba qué contenedores están en ejecución ejecutando esto:
sudo docker ps -a
Los contenedores con estado «Salido» o «Reiniciando» tienen problemas. Revisa tus registros:
sudo docker logs bitwarden-db
sudo docker logs bitwarden-api
Los errores de inicialización de la base de datos significan que el directorio bwdata tiene problemas de permisos. Corregir permisos:
sudo chown -R root:root /opt/bitwarden/bwdata
sudo chmod -R 755 /opt/bitwarden/bwdata
Si los contenedores siguen sin iniciarse, comprueba el espacio en disco:
df -h
Recuerda que Bitwarden necesita al menos unos pocos GB de espacio libre para funcionar correctamente.
El hecho de que SMTP no funcione impide restablecer contraseñas e invitar a usuarios. Comprueba primero tu configuración SMTP revisando los registros de la API cuando intentes enviar un correo electrónico:
sudo docker logs -f bitwarden-api
Activa un intento de restablecimiento de contraseña y comprueba si hay errores SMTP en los registros. Estos son los problemas más comunes:
- Nombre de usuario o contraseña incorrectos (utiliza contraseñas específicas para la aplicación, no tu contraseña habitual).
- Configuración incorrecta del puerto o SSL
- El cortafuegos bloquea las conexiones SMTP salientes.
- Proveedor de correo electrónico que requiere pasos de autenticación adicionales
Puedes comprobar que la configuración SMTP en ./bwdata/env/global.override.env coincide exactamente con la documentación de tu proveedor. Incluso pequeños errores tipográficos en el nombre de host o el puerto pueden interrumpir la entrega del correo electrónico.
Después de corregir la configuración SMTP, reinicia Bitwarden y vuelve a intentarlo.
Bitwarden vs Vaultwarden (la elección de los usuarios de Docker)
Vaultwarden es una implementación no oficial del servidor Bitwarden, mantenida por la comunidad y escrita en Rust.
No está afiliado a Bitwarden Inc., pero es compatible con todos los clientes oficiales de Bitwarden. Utilizas las mismas extensiones de navegador, aplicaciones móviles y aplicaciones de escritorio. La diferencia está totalmente en el lado del servidor.
Por qué los usuarios eligen Vaultwarden
- Menor uso de recursos. Vaultwarden se ejecuta en un único contenedor ligero que necesita menos de 100 MB de RAM. Bitwarden oficial utiliza varios contenedores y necesita al menos 2 GB. Si utilizas un pequeño VPS o una Raspberry Pi, Vaultwarden es la opción más adecuada.
- Configuración más sencilla. Un contenedor significa menos piezas móviles. Sin contenedor de base de datos independiente, sin contenedor web independiente. Seleccionas una imagen, configuras un contenedor y listo.
- Algunas funciones premium funcionan sin necesidad de tener una licencia de pago. Vaultwarden habilita funciones como archivos adjuntos y acceso de emergencia que requieren una suscripción premium en Bitwarden oficial.
Ventajas e inconvenientes de Vaultwarden
- Es un proyecto comunitario. Las actualizaciones provienen de voluntarios, no de una empresa con personal de soporte dedicado.
- No hay soporte oficial. Bitwarden Inc. no te ayudará con los problemas relacionados con Vaultwarden. Tienes que valerte por ti mismo con los foros de la comunidad y los problemas de GitHub.
- Posibles problemas de compatibilidad. Cuando Bitwarden lanza nuevas funciones, Vaultwarden tiene que ponerse al día. Normalmente hay un retraso antes de que las nuevas funciones empiecen a funcionar.
¿Cuál deberías usar?
Utiliza Bitwarden oficial si deseas asistencia empresarial, compatibilidad garantizada con todas las funciones y el respaldo de la empresa que desarrolla los clientes. Los requisitos de recursos importan menos si utilizas un VPS con el tamaño adecuado.
Elige Vaultwarden si utilizas un hardware limitado, deseas una configuración más sencilla o necesitas funciones premium sin tener que pagar. Solo ten en cuenta que estás cambiando el soporte oficial por la eficiencia de los recursos.
Ambos funcionan bien para el autoalojamiento y protegen tus contraseñas con el mismo cifrado que esperan los clientes.
Prácticas recomendadas básicas de seguridad
Aunque sea obvio, Bitwarden almacena tus contraseñas, por lo que necesitarás una protección que vaya más allá del simple cifrado. A continuación, se indican algunas prácticas recomendadas que debes seguir.
Mantén tu servidor actualizado. Los parches de seguridad son importantes, así que ejecuta las actualizaciones con regularidad. Aquí tienes un comando para hacerlo:
sudo apt update && sudo apt upgrade -y
Puedes configurar actualizaciones de seguridad automáticas para que los parches críticos se instalen sin intervención manual. En Ubuntu, instala unattended-upgrades:
sudo apt install unattended-upgrades -y
sudo dpkg-reconfigure --priority=low unattended-upgrades
Restringe el acceso al panel de administración. La interfaz de administración de Bitwarden se encuentra en /admin y utiliza un token de administración independiente para la autenticación. Genera un token seguro durante la instalación y guárdalo en un lugar seguro. No expongas el panel de administración a la red pública de Internet si puedes evitarlo.
Si necesitas acceso de administración remoto, utiliza un túnel SSH o una VPN en lugar de dejar /admin accesible públicamente.
Utiliza HTTPS en todas partes. Nunca desactives HTTPS ni ignores las advertencias sobre certificados. Si tus certificados no funcionan, arréglalos en lugar de buscar soluciones alternativas al problema. Los clientes de Bitwarden se niegan a conectarse a través de HTTP por una buena razón.
Supervisa los lanzamientos de Bitwarden. Suscríbete a las publicaciones de Bitwarden en GitHub o consulta su blog para conocer las actualizaciones de seguridad. Cuando se publique una nueva versión, lee las notas de la versión antes de actualizar para comprender qué ha cambiado.
Activa la autenticación de dos factores en tu cuenta de Vault. Incluso si alguien roba tu contraseña maestra, la autenticación de dos factores (2FA) bloquea el acceso no autorizado. Utiliza una aplicación de autenticación o una llave de hardware.
Utiliza un cortafuegos. A modo de referencia, a continuación se explica cómo puedes configurar UFW para que solo permita los puertos necesarios:
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
Bloquea todo lo demás de forma predeterminada.
Revisa los registros de vez en cuando para detectar actividades inusuales. Busca intentos de inicio de sesión fallidos o llamadas API inesperadas:
sudo docker logs bitwarden-api | grep -i "failed\\|error"
Como puedes ver, Bitwarden autohospedado significa que tendrás que realizar algunas tareas de vez en cuando. Ese es el precio del control total.
Conclusión
Docker facilita el autoalojamiento de Bitwarden y no necesitas infraestructura empresarial.
El script de instalación oficial hace todo por ti. Obtienes actualizaciones automáticas, gestión de certificados y un almacén operativo en menos de una hora; a mí me llevó aproximadamente 15 minutos configurarlo, incluyendo el aprovisionamiento de instancias informáticas y la configuración del DNS. La mayoría de los usuarios nunca necesitan nada más de lo que he explicado en este artículo.
Comienza con la configuración básica en un solo servidor. Familiarízate con las copias de seguridad, las actualizaciones y la resolución básica de problemas antes de añadir proxies inversos, bases de datos externas o configuraciones de alta disponibilidad. Esas configuraciones avanzadas resuelven problemas que probablemente aún no tienes.
Si no quieres confiar tus contraseñas a terceros, esta es la mejor opción. Pero también es importante no complicar demasiado la configuración y estropear algo. Ejecuta la implementación oficial de Docker, haz copias de seguridad periódicamente y tendrás un gestor de contraseñas sólido bajo tu control.
¿Estás listo para aprender más sobre Docker? Comienza con nuestros Curso de conceptos de contenedorización y virtualización y, a continuación, ve cómo se aplican en la práctica con Docker y Kubernetes.
Preguntas frecuentes
¿Cómo puedes garantizar una alta disponibilidad para tu instancia autohospedada de Bitwarden?
La alta disponibilidad requiere ejecutar varias instancias de Bitwarden detrás de un equilibrador de carga con una base de datos externa compartida, como PostgreSQL o MySQL. Tendrás que configurar cada instancia para que se conecte a la misma base de datos y utilice el almacenamiento compartido para los archivos adjuntos. Para la mayoría de las implementaciones personales y de equipos pequeños, las copias de seguridad periódicas y un proceso de restauración documentado proporcionan una protección adecuada sin la complejidad de la arquitectura de alta disponibilidad.
¿Cuáles son las mejores prácticas para configurar SMTP en Bitwarden?
Utiliza contraseñas específicas para aplicaciones en lugar de tu contraseña habitual de correo electrónico y comprueba que la configuración SMTP coincide exactamente con la documentación de tu proveedor. Comprueba siempre el envío de correos electrónicos después de la configuración activando un restablecimiento de contraseña o utilizando la función de prueba del panel de administración. Almacena las credenciales SMTP de forma segura en el archivo global.override.env y restringe los permisos de los archivos para evitar el acceso no autorizado.
¿Cómo soluciono un error 502 Bad Gateway en Bitwarden?
Comprueba si todos los contenedores se están ejecutando con sudo docker ps y busca aquellos que se encuentren en estado «Restarting» (Reiniciando). Revisa los registros de los contenedores nginx y API utilizando sudo docker logs bitwarden-nginx y sudo docker logs bitwarden-api para identificar el servicio que falla. Entre las causas más comunes se incluyen que el contenedor API no se inicie debido a problemas de conexión con la base de datos, memoria insuficiente o problemas con los certificados que bloquean el proxy inverso.
¿Puedes utilizar puertos de servidor personalizados con Bitwarden?
Sí, edita ./bwdata/config.yml y cambia http_port y https_port por los valores que prefieras, como 8080 y 8443. Después de cambiar los puertos, reinicia Bitwarden con sudo ./bitwarden.sh restart. Recuerda que el uso de puertos no estándar implica que deberás incluir el número de puerto en la URL de tu dominio cuando accedas al almacén.
¿Cómo habilitas el registro en syslog en Bitwarden?
Los contenedores Docker de Bitwarden registran en stdout/stderr de forma predeterminada, lo que Docker captura automáticamente. Puedes reenviar estos registros a syslog configurando el controlador de registro de Docker en los ajustes del contenedor o utilizando una herramienta de agregación de registros como Fluentd o Logstash. Para una integración sencilla de syslog, utiliza el controlador de registro syslog de Docker añadiendo --log-driver=syslog a la configuración de tu contenedor, aunque esto requiere una modificación manual del archivo Docker Compose.

