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.
advertencia
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 bitwarden
Establece una contraseña para el usuario de Bitwarden:
Bashsudo passwd bitwarden
Crea un grupo de docker (si no existe ya):
Bashsudo groupadd docker
Agrega el usuario de Bitwarden al grupo docker:
Bashsudo usermod -aG docker bitwarden
Crea un directorio de Bitwarden:
Bashsudo mkdir /opt/bitwarden
Establezca permisos para el directorio
/opt/Bitwarden
:Bashsudo chmod -R 700 /opt/bitwarden
Establezca la propiedad del usuario de Bitwarden del directorio
/opt/bitwarden
:Bashsudo chown -R bitwarden:bitwarden /opt/bitwarden
advertencia
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.zip
Crea un nuevo directorio llamado
bwdata
y extraedocker-stub.zip
en él, por ejemplo:Bashunzip docker-stub-US.zip -d bwdata
Una vez descomprimido, el directorio
bwdata
coincidirá con lo que el archivodocker-compose.yml
espera 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_DATOS
con 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_KEY
con una cadena de clave aleatoria.globalSettings__oidcIdentityClientKey=
: ReemplaceRANDOM_IDENTITY_KEY
con una cadena de clave aleatoria.globalSettings__duo__aKey=
: ReemplaceRANDOM_DUO_AKEY
con 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.consejo
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.pfx
para 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 10950
y
Bashopenssl pkcs12 -export -out ./identity/identity.pfx -inkey identity.key -in identity.crt -passout pass:IDENTITY_CERT_PASSWORD
En el comando anterior, reemplace
IDENTITY_CERT_PASSWORD
con la contraseña del certificado creada y utilizada en Paso 3.Copia
identity.pfx
al directorio./bwdata/ssl
.Crea un subdirectorio en
./bwdata/ssl
con el nombre de tu dominio, por ejemplo:Bashmkdir ./ssl/bitwarden.example.com
Proporcione un certificado SSL confiable y una clave privada en el subdirectorio recién creado
./bwdata/ssl/bitwarden.example.com
.nota
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.com
con su dominio, incluyendo en el encabezado de laPolítica-de-Seguridad-de-Contenido
.Establezca las variables
ssl_certificate
yssl_certificate_key
a 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_certificate
en la ruta a su certificado.Si utiliza un certificado autofirmado, comente la variable
ssl_trusted_certificate
.
En
./bwdata/env/mssql.override.env
, reemplaceRANDOM_DATABASE_PASSWORD
con la contraseña creada en Paso 3.En
./bwdata/web/app-id.json
, reemplacebitwarden.example.com
con su dominio.En
./bwdata/env/uid.env
, establece el UID y GID de los usuarios deBitwarden
y 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.zip
de la página de lanzamientos en GitHub.Descomprime el nuevo archivo
docker-stub.zip
y compara su contenido con lo que actualmente está en tu directoriobwdata
, copiando cualquier cosa nueva a los archivos preexistentes enbwdata
.
No sobrescriba su directoriobwdata
preexistente 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
Sugerir cambios en esta página
¿Cómo podemos mejorar esta página para usted?
Si tiene preguntas técnicas, sobre facturación o sobre el producto, póngase en contacto con el servicio de asistencia.