Saltar al contenido principal

Configuración

Variables de entorno

Uso

Logto gestiona las variables de entorno en el siguiente orden:

  • Variables de entorno del sistema
  • El archivo .env en la raíz del proyecto, que cumple con el formato dotenv

Por lo tanto, las variables de entorno del sistema sobrescribirán los valores en .env.

Variables

precaución:

Si ejecutas Logto mediante npm start en la raíz del proyecto, NODE_ENV siempre será production.

En los valores predeterminados, protocol será http o https según tu configuración de HTTPS.

KeyValor predeterminadoTipoDescripción
NODE_ENVundefined'production' | 'test' | undefinedQué tipo de entorno ejecuta Logto.
PORT3001numberEl puerto local en el que Logto escucha.
ADMIN_PORT3002numberEl puerto local en el que la Consola de Administración de Logto escucha.
ADMIN_DISABLE_LOCALHOSTN/Astring | boolean | numberEstablécelo en 1 o true para deshabilitar el puerto de la Consola de Administración. Si ADMIN_ENDPOINT no está definido, deshabilitará completamente la Consola de Administración.
DB_URLN/AstringEl DSN de Postgres para la base de datos de Logto.
HTTPS_CERT_PATHundefinedstring | undefinedConsulta Habilitar HTTPS para más detalles.
HTTPS_KEY_PATHundefinedstring | undefinedÍdem.
TRUST_PROXY_HEADERfalsebooleanÍdem.
ENDPOINT'protocol://localhost:$PORT'stringPuedes especificar una URL con tu dominio personalizado para pruebas en línea o producción. Esto también afectará el valor del identificador de emisor OIDC.
ADMIN_ENDPOINT'protocol://localhost:$ADMIN_PORT'stringPuedes especificar una URL con tu dominio personalizado para producción (Ej. ADMIN_ENDPOINT=https://admin.domain.com). Esto también afectará el valor de los URI de redirección de la Consola de Administración.
CASE_SENSITIVE_USERNAMEtruebooleanEspecifica si el nombre de usuario distingue entre mayúsculas y minúsculas. Ten precaución al modificar este valor; los cambios no ajustarán automáticamente los datos existentes en la base de datos, requiriendo gestión manual.
SECRET_VAULT_KEKundefinedstringLa clave de cifrado de claves (KEK) utilizada para cifrar las claves de cifrado de datos (DEK) en el Secret Vault. Requerida para que el Secret Vault funcione correctamente. Debe ser una cadena codificada en base64. Se recomienda AES-256 (32 bytes). Ejemplo: crypto.randomBytes(32).toString('base64')

Habilitar HTTPS

Usando Node

Node admite HTTPS de forma nativa. Proporciona AMBOS HTTPS_CERT_PATH y HTTPS_KEY_PATH para habilitar HTTPS a través de Node.

HTTPS_CERT_PATH indica la ruta a tu certificado HTTPS, mientras que HTTPS_KEY_PATH indica la ruta a tu clave HTTPS.

Usando un proxy HTTPS

Otra práctica común es tener un proxy HTTPS delante de Node (Ej. Nginx).

En este caso, probablemente querrás establecer TRUST_PROXY_HEADER en true, lo que indica si se deben confiar los campos de encabezado del proxy. Logto pasará el valor a la configuración de la app Koa.

Consulta Confiar en proxies de descarga TLS para saber cuándo configurar este campo.

Configuraciones de base de datos

Gestionar demasiadas variables de entorno no es eficiente ni flexible, por lo que la mayoría de nuestras configuraciones generales se almacenan en la tabla de base de datos logto_configs.

La tabla es un almacenamiento simple de clave-valor, y la clave es enumerable como sigue:

KeyTipoDescripción
oidc.cookieKeysstring[]El array de cadenas de las claves de firma de cookies.
oidc.privateKeysstring[]El array de cadenas del contenido de la clave privada para la firma JWT de OIDC.

Tipos de clave privada soportados

  • EC (curvas P-256, secp256k1, P-384 y P-521)
  • RSA
  • OKP (subtipos Ed25519, Ed448, X25519, X448)