Configuración avanzada de Docker para Devolutions Server
Este artículo cubre las opciones de configuración avanzada para el despliegue de Devolutions Server en Docker, incluida la referencia completa de variables de entorno, la gestión de certificados, el ajuste del rendimiento y el refuerzo de la seguridad.
Referencia de variables de entorno
Variables de conexión a la base de datos
DATABASE_HOST
Sí
—
Nombre de host del SQL Server. Para puertos no estándar, use el formato host,port (p. ej., sql.example.com,1433).
AZURE_SQL_HOST
Sí*
—
Alias de DATABASE_HOST (nomenclatura específica de Azure).
DATABASE_NAME
Sí
—
Nombre de la base de datos de Devolutions Server.
AZURE_SQL_DATABASE
Sí*
—
Alias de DATABASE_NAME.
DATABASE_USERNAME
Sí
—
Nombre de usuario de autenticación SQL (use una cuenta con privilegios mínimos con db_owner en la base de datos de Devolutions Server).
AZURE_SQL_USERNAME
Sí*
—
Alias de DATABASE_USERNAME.
DATABASE_PASSWORD
Sí
—
Contraseña de autenticación SQL (trátela como un secreto, use secretos de Docker o Azure Key Vault).
AZURE_SQL_PASSWORD
Sí*
—
Alias de DATABASE_PASSWORD.
DATABASE_PORT
No
1433
Puerto del SQL Server (se añade al host si no se ha especificado ya en DATABASE_HOST).
AZURE_SQL_PORT
No
1433
Alias de DATABASE_PORT.
DATABASE_ENCRYPT
No
false
Establézcalo en true para cifrar la conexión con el SQL Server (TLS). Obligatorio cuando el SQL Server exige el cifrado. Se lee en cada inicio del contenedor: páselo en cada docker run.
DATABASE_TRUST_SERVER_CERTIFICATE
No
false
Establézcalo en true para confiar en el certificado del SQL Server sin validarlo. Úselo con DATABASE_ENCRYPT=true cuando el servidor presente un certificado autofirmado (p. ej., SQL Server 2022 en un contenedor).
Configuración del servidor web
HOSTNAME
No
localhost
Nombre de host del servidor (se sobrescribe con WEBSITE_HOSTNAME en Azure).
WEB_SCHEME
No
http
Protocolo: http o https. Establézcalo en https para habilitar TLS.
WEB_PORT / PORT
No
5000
Puerto en el que escucha el contenedor.
EXTERNAL_WEB_SCHEME
No
Refleja WEB_SCHEME
Protocolo externo cuando está detrás de un proxy inverso (p. ej., https cuando el proxy gestiona TLS).
EXTERNAL_WEB_PORT
No
Refleja WEB_PORT
Puerto externo cuando está detrás de un proxy inverso (p. ej., 443 para HTTPS estándar).
Configuración del certificado TLS
TLS_CERTIFICATE_FILE
No*
—
Ruta al fichero de certificado PEM montado (p. ej., /opt/devolutions/dvls/certs/server.pem)
TLS_PRIVATE_KEY_FILE
No*
—
Ruta al fichero de clave privada PEM montado (p. ej., /opt/devolutions/dvls/certs/server.key)
TLS_CERTIFICATE_B64
No*
—
Contenido del certificado codificado en Base64 (se escribe en App_Data/server.pem)
TLS_PRIVATE_KEY_B64
No*
—
Contenido de la clave privada codificado en Base64 (se escribe en App_Data/server.key)
Configuración del modo de funcionamiento
DVLS_INIT
No
false
Establézcalo en true para ejecutar el modo de inicialización (crea el esquema y el usuario administrador y, a continuación, finaliza).
DVLS_UPDATE_MODE
No
false
Establézcalo en true para ejecutar el modo de actualización (realiza una copia de seguridad, migra la base de datos y, a continuación, finaliza).
DVLS_BACKUP_PATH
No
/tmp/dvls-backup
Ubicación de la copia de seguridad durante las actualizaciones (monte un volumen para conservar las copias de seguridad).
Variables del modo de inicialización
Estas variables solo se utilizan durante la inicialización (DVLS_INIT=true):
DVLS_ADMIN_USERNAME
No
dvls-admin
Nombre de usuario de la cuenta de administrador creada durante la inicialización.
DVLS_ADMIN_PASSWORD
No
dvls-admin
Contraseña de la cuenta de administrador. DEBE cambiarse en producción.
DVLS_ADMIN_EMAIL
No
admin@<HOSTNAME>
Dirección de correo electrónico de la cuenta de administrador
Configuración del sistema
DVLS_PATH
No
/opt/devolutions/dvls
Ruta raíz de instalación (ubicación de appsettings y App_Data).
DVLS_EXECUTABLE_PATH
No
/opt/devolutions/dvls/Devolutions.Server
Ruta del ejecutable de Devolutions Server en modo de ejecución.
DVLS_TELEMETRY
No
true
Activar/desactivar la recopilación de telemetría.
DVLS_ENCRYPTION_CONFIG_B64
No
—
Configuración de cifrado codificada en Base64 (necesaria para un cifrado coherente entre instancias escaladas).
Configuración del acceso SSH
SSH_ENABLED
No
false
Activa el demonio SSH para depuración (se activa automáticamente en Azure salvo que se desactive explícitamente),
SSH_PORT
No
2222
Puerto de escucha SSH (publíquelo con -p 2222:2222),
SSH_PASSWORD
Sí*
Docker!
Contraseña de root para SSH (OBLIGATORIA si SSH_ENABLED=true; DEBE cambiarse en producción.
Variables de Azure Web App
Estas variables las establece automáticamente Azure App Service:
WEBSITE_HOSTNAME
Azure
Sustituye a HOSTNAME (por ejemplo, dvls-prod.azurewebsites.net)
WEBSITE_INSTANCE_ID
Azure
Su presencia fuerza EXTERNAL_WEB_SCHEME=https y EXTERNAL_WEB_PORT=443, y activa automáticamente SSH
Configuración del certificado TLS
Certificado autofirmado generado automáticamente
Cuando WEB_SCHEME=https sin variables de certificado, Devolutions Server genera un certificado autofirmado (válido ~5 años, RSA de 2048 bits, CN=hostname):
Solo para desarrollo y pruebas. Los navegadores mostrarán advertencias de seguridad.
Ficheros de certificado mediante montaje de volumen
Monte los ficheros de certificado desde el host:
Requisitos de formato del certificado:
Certificado: formato PEM (
.pem,.crt)Clave privada: formato PEM (
.key,.pem)Cadena: incluya los certificados intermedios en el fichero de certificado
Ejemplo de fichero de certificado con cadena:
Certificados codificados en Base64
Utilice certificados codificados en Base64 cuando trabaje con sistemas de gestión de secretos (Azure Key Vault, Kubernetes Secrets):
El certificado y la clave privada se escriben en /opt/devolutions/dvls/App_Data/ y se referencian en la configuración de Devolutions Server.
Configuración de la base de datos
Formato de la cadena de conexión
Devolutions Server construye la cadena de conexión de SQL Server a partir de variables de entorno:
Puerto estándar (1433)
O bien omita DATABASE_PORT (por defecto, 1433):
O bien omita DATABASE_PORT (por defecto, 1433):
O bien omita DATABASE_PORT (por defecto, 1433):
Puerto no estándar
Opción 1: incluir el puerto en el nombre de host:
Opción 2: variable de puerto separada:
Opción 1: incluir el puerto en el nombre de host:
Opción 2: variable de puerto separada:
Opción 1: incluir el puerto en el nombre de host:
Opción 2: variable de puerto separada:
Base de datos de Azure SQL
Conexión cifrada a la base de datos (TLS)
De forma predeterminada, Devolutions Server se conecta a SQL Server sin TLS. Si su SQL Server exige cifrado (por ejemplo, SQL Server 2022, que requiere TLS de forma predeterminada, o cualquier instancia con «Force Encryption» activado), la conexión fallará a menos que active el cifrado en el lado del cliente.
Estas variables se leen en cada inicio del contenedor, no solo durante la inicialización. La cadena de conexión SQL se regenera a partir de ellas en cada arranque, así que páselas en cada docker run: inicialización, ejecución y actualización. Omitirlas en tiempo de ejecución reescribe la cadena de conexión con el cifrado desactivado y la conexión fallará.
SQL Server con un certificado de confianza emitido por una CA
DATABASE_ENCRYPT=true
SQL Server con un certificado autofirmado (por ejemplo, SQL Server 2022 en contenedor)
DATABASE_ENCRYPT=true y DATABASE_TRUST_SERVER_CERTIFICATE=true
Establecer DATABASE_TRUST_SERVER_CERTIFICATE=true desactiva la validación del certificado. Utilícelo solo con certificados autofirmados en redes de confianza; para producción, instale un certificado de confianza emitido por una CA en SQL Server y establezca únicamente DATABASE_ENCRYPT=true.
Autenticación de SQL Server frente a autenticación de Windows
Los contenedores Docker de Devolutions Server solo admiten la autenticación de SQL Server (usuario/contraseña). La autenticación de Windows (Integrated Security) no se admite en contenedores Linux.
Configuración del proxy inverso
Cuando Devolutions Server se ejecuta detrás de un proxy inverso, un ingress de nginx o Azure App Service, configure los ajustes de la URL externa:
Ajustes clave:
WEB_SCHEME=http: el contenedor utiliza HTTPEXTERNAL_WEB_SCHEME=https: la URL pública es HTTPSEXTERNAL_WEB_PORT=443: puerto HTTPS estándar (se omite en las URL)HOSTNAME=devolutions-server.company.com: nombre de host público
Devolutions Server genera URL como https://devolutions-server.company.com/ en la interfaz de usuario y en las respuestas de la API.
Refuerzo de la seguridad
Gestión de secretos
NO codifique las contraseñas de forma fija en los comandos docker run ni en los ficheros compose.
Docker Secrets (modo Swarm)
Ficheros de entorno
Docker Secrets (modo Swarm)
Ficheros de entorno
Docker Secrets (modo Swarm)
Ficheros de entorno
Azure Key Vault
Utilice Managed Identity para recuperar los secretos de Key Vault en tiempo de ejecución. Consulte Devolutions Server deployment to Azure App Service using a container para obtener más detalles.
Aislamiento de red
Utilice redes de Docker para aislar Devolutions Server:
Acceso SSH
Deshabilite SSH en producción a menos que sea necesario para la depuración:
Si SSH está habilitado:
Utilice contraseñas seguras.
Cambie la contraseña predeterminada.
Restrinja el acceso con reglas de firewall.
Considere la autenticación mediante clave SSH (requiere una imagen personalizada).
Actualizaciones de versión
Etiquetado de versiones
Las imágenes se etiquetan por versión de lanzamiento (por ejemplo,
release-2025.3,release-2026.1) y por compilación específica (por ejemplo,2025.3.1.0,2025.3.2.0).No existe la etiqueta
latest: especifique siempre una versión.Las actualizaciones menores o de parche dentro de la misma versión de lanzamiento se incluyen automáticamente al descargar la etiqueta de lanzamiento.
El modo de actualización de la base de datos solo es necesario al cambiar de versión principal (por ejemplo,
release-2025.3→release-2026.1).
Actualización de versión principal
Actualización menor o de parche (por ejemplo, de 2025.3.1 a 2025.3.2)
Actualización de versión principal
Actualización menor o de parche (por ejemplo, de 2025.3.1 a 2025.3.2)
Actualización de versión principal
Actualización menor o de parche (por ejemplo, de 2025.3.1 a 2025.3.2)
Lista de comprobación de seguridad
Consulte Devolutions Server security hardening para:
Configuración de las cuentas de administración
Políticas de contraseñas
Autenticación multifactor
Restricciones de IP
Registro de auditoría
Configuración de cifrado
Véase también
Última actualización
¿Te fue útil?