Implementación sin conexión de Linux
Este artículo te guiará a través del procedimiento para instalar y desplegar Bitwarden en tu propio servidor en un entorno desconectado o aislado de la red. 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 se cumplan los siguientes requisitos:
Docker Engine y Docker Compose están instalados y listos para usar en tu servidor.
Usando una máquina con acceso a internet, has descargado el último archivo
docker-stub.zip
del repositorio del Servidor Bitwarden en la página de lanzamientos y has transferido este archivo a tu servidor.Se ha configurado y activado un servidor SMTP sin conexión en su entorno.
nota
Bitwarden actualmente solo es compatible en un entorno de Docker y Docker Compose. Los scripts de instalación de Bitwarden y los artefactos de instalación manual no se convierten con precisión a manifiestos de Kubernetes sin un conocimiento extenso del stack de Bitwarden y Kubernetes. Las conversiones automáticas de los artefactos de instalación no se recomiendan en este momento y podrían resultar en un entorno de implementación roto.
Mínimo | Recomendado | |
---|---|---|
Procesador | x64, 1.4GHz | x64, 2GHz de doble núcleo |
Memoria | 2GB RAM | 4GB RAM |
Almacenamiento | 12GB | 25GB |
Versión de Docker | Motor 19+ y Componer 1.24+ | Motor 19+ y Componer 1.24+ |
Por defecto, Bitwarden se servirá a través de los puertos 80 (http
) y 443 (https
) en la máquina anfitriona. Abre estos puertos para que Bitwarden pueda ser accedido desde dentro y/o fuera de la red. Puede optar por elegir diferentes puertos durante la instalación.
Recomendamos configurar un nombre de dominio con registros DNS que apunten a su máquina anfitriona (por ejemplo, bitwarden.example.com
), especialmente si está sirviendo Bitwarden a través de internet.
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 configurar tu máquina con los recursos necesarios para tu servidor Bitwarden:
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 una id de instalación obtenida de https://bitwarden.com/host.globalSettings__installation__key=
: Ingresa una clave de instalación obtenida de https://bitwarden.com/host.globalSettings__pushRelayBaseUri=
: Esta variable debería estar en blanco. Vea Configurar Relay de Notificaciones para más información.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
, generar un archivo de certificado.pfx
para el contenedor de identidad y moverlo 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 2.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 encabezadoContent-Security-Policy
.Establezca las variables
ssl_certificate
yssl_certificate_key
a las rutas del certificado y la clave privada proporcionadas en el Paso 6.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 2.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
Para obtener imágenes de Docker para usar en su máquina sin conexión:
Desde una máquina conectada a internet, descarga todas las imágenes de docker
bitwarden/xxx:latest
, tal como se enumeran en el archivodocker-compose.yml
endocker-stub.zip
.Guarda cada imagen en un archivo
.img
, por ejemplo:Bashdocker image save -o mssql.img bitwarden/mssql:version
Transfiere todos los archivos
.img
a tu máquina sin conexión.En su máquina sin conexión, cargue cada archivo
.img
para crear sus imágenes locales de Docker, por ejemplo:Bashdocker image load -i mssql.img
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 SMTP (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 estándar de actualización. Para actualizar tu servidor instalado manualmente:
Descarga el último archivo
docker-stub.zip
de las páginas 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.Descarga las últimas imágenes de contenedor y transfiérelas a tu máquina sin conexión como se documentó anteriormente.
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.