Despliegue Manual de Linux
Este artículo le guiará a través del procedimiento para instalar y desplegar manualmente Bitwarden en su propio servidor. Por favor revise la documentación de soporte para la liberación de software de Bitwarden.
warning
Las instalaciones manuales solo deben ser realizadas por usuarios avanzados. Solo proceda si está muy familiarizado con las tecnologías de Docker y desea tener más control sobre su instalación de Bitwarden.
Las instalaciones manuales carecen de la capacidad de actualizar automáticamente ciertas dependencias de la instalación de Bitwarden. A medida que mejora de una versión de Bitwarden a la siguiente, será responsable de los cambios en las variables de entorno requeridas, los cambios en nginx default.conf, los cambios en docker-compose.yml, y así sucesivamente.
Intentaremos resaltar estos en las notas de la versión en GitHub. También puedes monitorear los cambios en las plantillas de dependencia utilizadas por el script de instalación de Bitwarden en GitHub.
Antes de proceder con la instalación, asegúrese de que Docker Engine y Docker Compose estén instalados y listos para usar en su servidor y que su máquina cumpla con las especificaciones de sistema requeridas.
Si está construyendo sus propias imágenes de Bitwarden, se requieren imágenes oficiales de .NET Core Runtime (descargar desde DockerHub) de la misma versión de lanzamiento principal que las imágenes de Bitwarden.
Mínimo | Recomendado | |
|---|---|---|
Procesador | x64, 1.4GHz | x64, 2GHz de doble núcleo |
Memoria | 2GB de RAM | 4GB RAM |
Almacenamiento | 12GB | 25GB |
Versión de Docker | Motor 19+ y Componer 1.24+ | Motor 19+ y Componer 1.24+ |
Recomendamos configurar su servidor con una cuenta de servicio dedicada de Bitwarden desde la cual instalar y ejecutar Bitwarden. Hacerlo aislará tu instancia de Bitwarden de otras aplicaciones que se ejecutan en tu servidor.
Estos pasos son las mejores prácticas recomendadas por Bitwarden, pero no son obligatorios. Para obtener más información, consulte la documentación de Docker sobre los pasos posteriores a la instalación para Linux.
Crea un usuario de Bitwarden:
Bashsudo adduser bitwardenEstablece una contraseña para el usuario de Bitwarden:
Bashsudo passwd bitwardenCrea un grupo de docker (si no existe ya):
Bashsudo groupadd dockerAgrega el usuario de Bitwarden al grupo docker:
Bashsudo usermod -aG docker bitwardenCrea un directorio de Bitwarden:
Bashsudo mkdir /opt/bitwardenEstablezca permisos para el directorio
/opt/Bitwarden:Bashsudo chmod -R 700 /opt/bitwardenEstablezca la propiedad del usuario de Bitwarden del directorio
/opt/bitwarden:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
warning
Si has creado un usuario y directorio de Bitwarden, completa lo siguiente como el usuario bitwarden desde el directorio /opt/bitwarden. No instale Bitwarden como root , ya que encontrará problemas durante la instalación.
Para descargar Bitwarden y configurar los activos del servidor Bitwarden:
Descarga una versión simulada de las dependencias de Bitwarden (
docker-stub.zip) desde las páginas de lanzamientos en GitHub. Por ejemplo:Bashcurl -L https://github.com/bitwarden/server/releases/download/v<version_number>/docker-stub-US.zip \ -o docker-stub-US.zipCrea un nuevo directorio llamado
bwdatay extraedocker-stub.zipen él, por ejemplo:Bashunzip docker-stub-US.zip -d bwdataUna vez descomprimido, el directorio
bwdatacoincidirá con lo que el archivodocker-compose.ymlespera en su mapeo de volumen. Puede, si lo desea, cambiar la ubicación de estas asignaciones en la máquina anfitriona.En
./bwdata/env/global.override.env, editar las siguientes variables de entorno:globalSettings__baseServiceUri__vault=: Ingresa el dominio de tu instancia de Bitwarden.globalSettings__sqlServer__ConnectionString=: Reemplace laCONTRASEÑA_ALEATORIA_DE_BASE_DE_DATOScon una contraseña segura para usar en un paso posterior.globalSettings__identityServer__certificatePassword: Establezca una contraseña de certificado segura para usar en un paso posterior.globalSettings__internalIdentityKey=: ReemplaceRANDOM_IDENTITY_KEYcon una cadena de clave aleatoria.globalSettings__oidcIdentityClientKey=: ReemplaceRANDOM_IDENTITY_KEYcon una cadena de clave aleatoria.globalSettings__duo__aKey=: ReemplaceRANDOM_DUO_AKEYcon una cadena de clave aleatoria.globalSettings__installation__id=: Ingresa un id de instalación obtenido de https://bitwarden.com/host.globalSettings__installation__key=: Ingresa una clave de instalación obtenida de https://bitwarden.com/host.tip
En este momento, considere también establecer valores para todas las variables
globalSettings__mail__smtp__y paraadminSettings__admins. Hacerlo configurará el servidor de correo SMTP utilizado para enviar invitaciones a nuevos miembros de la organización y proporcionar acceso al Portal del Administrador del Sistema.
Desde
./bwdata, genera un archivo de certificado.pfxpara el contenedor de identidad y muévelo al directorio de volumen mapeado (por defecto,./bwdata/identity/). Por ejemplo, ejecuta los siguientes comandos:Bashopenssl req -x509 -newkey rsa:4096 -sha256 -nodes -keyout identity.key -out identity.crt -subj "/CN=Bitwarden IdentityServer" -days 10950y
Bashopenssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORDEn el comando anterior, reemplace
IDENTITY_CERT_PASSWORDcon la contraseña del certificado creada y utilizada en Paso 3.Copia
identity.pfxal directorio./bwdata/ssl.Crea un subdirectorio en
./bwdata/sslcon el nombre de tu dominio, por ejemplo:Bashmkdir ./ssl/bitwarden.example.comProporcione un certificado SSL confiable y una clave privada en el subdirectorio recién creado
./bwdata/ssl/bitwarden.example.com.note
Este directorio está mapeado al contenedor NGINX en
/etc/ssl. Si no puedes proporcionar un certificado SSL de confianza, adelanta la instalación con un proxy que proporciona un punto final HTTPS a las aplicaciones cliente de Bitwarden.En
./bwdata/nginx/default.conf:Reemplace todas las instancias de
bitwarden.example.comcon su dominio, incluyendo en el encabezado de laPolítica-de-Seguridad-de-Contenido.Establezca las variables
ssl_certificateyssl_certificate_keya las rutas del certificado y la clave privada proporcionadas en el Paso 7.Realice una de las siguientes acciones, dependiendo de la configuración de su certificado:
Si utiliza un certificado SSL de confianza, establezca la variable
ssl_trusted_certificateen la ruta a su certificado.Si utiliza un certificado autofirmado, comente la variable
ssl_trusted_certificate.
En
./bwdata/env/mssql.override.env, reemplaceRANDOM_DATABASE_PASSWORDcon la contraseña creada en Paso 3.En
./bwdata/web/app-id.json, reemplacebitwarden.example.comcon su dominio.En
./bwdata/env/uid.env, establece el UID y GID de los usuarios deBitwardeny el grupo que creaste anteriormente para que los contenedores se ejecuten bajo ellos, por ejemplo:BashLOCAL_UID=1001 LOCAL_GID=1001
Inicie su servidor Bitwarden con el siguiente comando:
Bashdocker compose -f ./docker/docker-compose.yml up -d
Verifique que todos los contenedores estén funcionando correctamente.
Bashdocker ps

¡Felicidades! Bitwarden ahora está en funcionamiento en https://your.domain.com. Visita la caja fuerte web en tu navegador para confirmar que está funcionando.
Ahora puedes registrar una nueva cuenta e iniciar sesión. Necesitará tener configuradas las variables de entorno SMPT (ver Variables de Entorno) para verificar el correo electrónico de su nueva cuenta.
Si planeas autoalojar una organización Bitwarden, consulta autoalojar una organización para comenzar.
Para obtener información adicional, consulte las preguntas frecuentes sobre autoalojamiento.
Actualizar un servidor autoalojado que ha sido instalado y desplegado manualmente es diferente del procedimiento de actualización estándar. Para actualizar tu servidor instalado manualmente:
Descarga el último archivo
docker-stub.zipde la página de lanzamientos en GitHub.Descomprime el nuevo archivo
docker-stub.zipy compara su contenido con lo que actualmente está en tu directoriobwdata, copiando cualquier cosa nueva a los archivos preexistentes enbwdata.
No sobrescriba su directoriobwdatapreexistente con el contenido del archivo más recientedocker-stub.zip, ya que esto sobrescribiría cualquier trabajo de configuración personalizado que haya realizado.Ejecuta el siguiente comando para reiniciar tu servidor con tu configuración actualizada y los contenedores más recientes:
Bashdocker compose -f ./docker/docker-compose.yml down && docker compose -f ./docker/docker-compose.yml up -d