Pular para o conteúdo principal

Configuração

Variáveis de ambiente​

Uso​

O Logto lida com variáveis de ambiente na seguinte ordem:

  • Variáveis de ambiente do sistema
  • O arquivo .env na raiz do projeto, que está em conformidade com o formato dotenv

Assim, as variáveis de ambiente do sistema irão sobrescrever os valores em .env.

Variáveis​

cuidado:

Se você executar o Logto via npm start na raiz do projeto, NODE_ENV será sempre production.

Nos valores padrão, protocol será http ou https de acordo com sua configuração de HTTPS.

KeyValor PadrãoTipoDescrição
NODE_ENVundefined'production' | 'test' | undefinedQual tipo de ambiente em que o Logto está rodando.
PORT3001numberA porta local na qual o Logto escuta.
ADMIN_PORT3002numberA porta local na qual o Logto Admin Console escuta.
ADMIN_DISABLE_LOCALHOSTN/Astring | boolean | numberDefina como 1 ou true para desabilitar a porta do Admin Console. Com ADMIN_ENDPOINT não definido, irá desabilitar completamente o Admin Console.
DB_URLN/AstringO Postgres DSN para o banco de dados do Logto.
HTTPS_CERT_PATHundefinedstring | undefinedVeja Habilitando HTTPS para detalhes.
HTTPS_KEY_PATHundefinedstring | undefinedIdem.
TRUST_PROXY_HEADERfalsebooleanIdem.
ENDPOINT'protocol://localhost:$PORT'stringVocê pode especificar uma URL com seu domínio personalizado para testes online ou produção. Isso também afetará o valor do identificador do emissor OIDC.
ADMIN_ENDPOINT'protocol://localhost:$ADMIN_PORT'stringVocê pode especificar uma URL com seu domínio personalizado para produção (Ex: ADMIN_ENDPOINT=https://admin.domain.com). Isso também afetará o valor dos URIs de redirecionamento do Admin Console.
CASE_SENSITIVE_USERNAMEtruebooleanEspecifica se o nome de usuário diferencia maiúsculas de minúsculas. Tenha cautela ao modificar este valor; alterações não ajustarão automaticamente os dados existentes no banco de dados, exigindo gerenciamento manual.
SECRET_VAULT_KEKundefinedstringA Key Encryption Key (KEK) usada para criptografar as Data Encryption Keys (DEK) no Secret Vault. Necessária para o funcionamento adequado do Secret Vault. Deve ser uma string codificada em base64. AES-256 (32 bytes) é recomendado. Exemplo: crypto.randomBytes(32).toString('base64')

Habilitando HTTPS​

Usando Node​

O Node suporta HTTPS nativamente. Forneça AMBOS HTTPS_CERT_PATH e HTTPS_KEY_PATH para habilitar HTTPS via Node.

HTTPS_CERT_PATH indica o caminho para seu certificado HTTPS, enquanto HTTPS_KEY_PATH indica o caminho para sua chave HTTPS.

Usando um proxy HTTPS​

Outra prática comum é ter um proxy HTTPS na frente do Node (Ex: Nginx).

Nesse caso, provavelmente você vai querer definir TRUST_PROXY_HEADER como true, o que indica se os campos de cabeçalho do proxy devem ser confiáveis. O Logto irá passar o valor para as configurações do app Koa.

Veja Confiando em proxies de offloading TLS para saber quando configurar este campo.

Configurações do banco de dados​

Gerenciar muitas variáveis de ambiente não é eficiente nem flexível, então a maioria das nossas configurações gerais são armazenadas na tabela logto_configs do banco de dados.

A tabela é um armazenamento simples de chave-valor, e a chave é enumerável conforme a seguir:

KeyTipoDescrição
oidc.cookieKeysstring[]O array de strings das chaves de assinatura de cookies.
oidc.privateKeysstring[]O array de strings do conteúdo da chave privada para assinatura JWT OIDC.

Tipos de chave privada suportados​

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