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
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.
Key | Valor predeterminado | Tipo | Descripción |
---|---|---|---|
NODE_ENV | undefined | 'production' | 'test' | undefined | Qué tipo de entorno ejecuta Logto. |
PORT | 3001 | number | El puerto local en el que Logto escucha. |
ADMIN_PORT | 3002 | number | El puerto local en el que la Consola de Administración de Logto escucha. |
ADMIN_DISABLE_LOCALHOST | N/A | string | boolean | number | Establé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_URL | N/A | string | El DSN de Postgres para la base de datos de Logto. |
HTTPS_CERT_PATH | undefined | string | undefined | Consulta Habilitar HTTPS para más detalles. |
HTTPS_KEY_PATH | undefined | string | undefined | Ídem. |
TRUST_PROXY_HEADER | false | boolean | Ídem. |
ENDPOINT | 'protocol://localhost:$PORT' | string | Puedes 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' | string | Puedes 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_USERNAME | true | boolean | Especifica 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_KEK | undefined | string | La 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:
Key | Tipo | Descripción |
---|---|---|
oidc.cookieKeys | string[] | El array de cadenas de las claves de firma de cookies. |
oidc.privateKeys | string[] | 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)