Variáveis de ambiente
A referência cobre o schema em gateway/src/config.ts e variáveis lidas diretamente por outros módulos. Defaults abaixo são do código, salvo indicação explícita. O .env.example contém overrides opcionais da demonstração; .env.testnet.example é o modelo para Base Sepolia.
O Compose local declara sua configuração diretamente e funciona sem .env. O Compose de Testnet recebe valores com --env-file .env.testnet. O modo dev do Gateway carrega ../.env. Interfaces usam .env.local ou argumentos de build. Valores opcionais vazios são tratados como ausentes por loadConfig.
Gateway, dados e segredos
Section titled “Gateway, dados e segredos”| Variável | Padrão / exigência | Uso |
|---|---|---|
GATEWAY_PORT |
3001 |
Porta do processo; Compose fixa em 3001 |
GATEWAY_HOST |
0.0.0.0 |
Bind interno; a publicação do Compose é no loopback do host |
DATABASE_URL |
PostgreSQL local, banco maivw_reputation |
Prisma; Compose usa host postgres |
POSTGRES_PASSWORD |
postgres no Compose |
Inicialização do banco; trocar env não altera senha de banco existente |
REDIS_URL |
redis://localhost:6379 |
Cache/coordenação; Compose usa host redis |
ADMIN_REGISTRATION_TOKEN |
Ausente: cadastro administrativo fechado | Convite privado de pelo menos 32 caracteres; remover após cadastrar administradores |
JWT_SECRET |
Obrigatório, mínimo 16 caracteres | Assinatura de sessão; use alta entropia |
MASTER_SECRET_KEY |
Obrigatório, mínimo 16 caracteres | Entrada para derivação SHA-256 da chave AES do cofre; não exige formato hex, mas recomenda-se gerar segredo aleatório |
INTERNAL_SERVICE_KEY |
Obrigatório, mínimo 16 caracteres | Integrações internas; não é uma chave EVM |
SENDER_DOMAIN |
empresaA.com |
Identidade padrão de envio, deve ser configurada |
MAIVW_CORE_DOMAIN |
maivw.org |
Sugestões de DNS e endpoint no onboarding; não substitui SENDER_DOMAIN |
PLATFORM_INGRESS_HOSTS |
Vazio | Lista adicional de hosts reconhecidos no roteamento |
IS_CLOUD |
false |
Aceita true ou false; não transforma o Compose em serviço de nuvem |
DEFAULT_P2P_ENDPOINT |
Opcional | URL concreta; HTTP é aceito somente no Anvil local, outras redes exigem HTTPS |
TLS_CERT_PATH |
Opcional (default data/certs/node.crt) |
Caminho do certificado público TLS X.509 em formato PEM |
TLS_KEY_PATH |
Opcional (default data/certs/node.key) |
Caminho da chave privada TLS correspondente ao certificado |
MTLS_STRICT_MODE |
false |
Se true, impõe verificação estrita de mTLS mesmo para nós sem ancoragem |
TRUST_PROXY |
false |
Se true, aceita cabeçalho x-client-cert-fingerprint-sha256 proveniente de proxy reverso confiável |
Não troque MASTER_SECRET_KEY em banco existente sem recifrar chaves e credenciais. Não há ferramenta de migração pronta para isso.
Blockchain e assinantes
Section titled “Blockchain e assinantes”| Variável | Padrão / exigência | Uso |
|---|---|---|
RPC_URL |
http://localhost:8545; Compose usa http://anvil:8545 |
RPC principal |
CHAIN_ID |
31337; modelo de Testnet usa 84532 |
Rede principal |
REGISTRY_CONTRACT_ADDRESS |
Automático no Compose local; obrigatório fora dele | Endereço do proxy; o local lê /deploy-output/contract-address.txt |
BASE_RPC_URL |
http://localhost:8545; Testnet deve configurar |
Caminhos Base/multichain |
BASE_REGISTRY_ADDRESS |
Opcional | Registro Base; não substitui globalmente REGISTRY_CONTRACT_ADDRESS |
ARBITRUM_RPC_URL |
https://sepolia-rollup.arbitrum.io/rpc |
Caminhos Arbitrum |
ARBITRUM_REGISTRY_ADDRESS |
Opcional | Registry da rede correspondente |
POLYGON_RPC_URL |
https://rpc-amoy.polygon.technology |
Caminhos Polygon |
POLYGON_REGISTRY_ADDRESS |
Opcional | Registry da rede correspondente |
ORACLE_SIGNER_TYPE |
local |
local ou gcp-kms |
ORACLE_PRIVATE_KEY |
Obrigatória para signer local | Chave EVM, prefixo 0x e 32 bytes; autoridade depende do contrato |
GCP_KMS_KEY_VERSION |
Obrigatória para gcp-kms |
Recurso da versão de chave compatível |
GCP_KMS_CREDENTIALS_BASE64 |
Opcional | JSON de credenciais codificado; caso contrário usa autenticação do ambiente |
ORACLE_MIN_BALANCE_WEI |
10000000000000000 |
Limiar informativo de saldo baixo |
MAIVW_ORACLE_URL |
https://api-test.maivw.com |
Dependência remota em caminhos do onboarding |
DEPLOYER_PRIVATE_KEY |
Opcional no Gateway | Scripts de implantação e alguns caminhos de carteira/telemetria; não é chave pública |
COMPANY_A_PRIVATE_KEY |
Opcional | Assinante de fallback; sem ela o Gateway gera chave efêmera |
COMPANY_B_PRIVATE_KEY |
Opcional | Campo legado/teste; não é pré-requisito do piloto |
PROVIDER_PRIVATE_KEY |
Opcional | Campo legado/teste; não é pré-requisito do piloto |
BASE_REGISTRY_LENS_ADDRESS não é consumida pelo Gateway atual. Fora do Anvil local, a inicialização rejeita Registry ausente, segredos local-demo-*, chave pública #0 do Anvil e endpoint P2P HTTP.
SMTP, juiz e módulos com configuração direta
Section titled “SMTP, juiz e módulos com configuração direta”| Variável | Uso |
|---|---|
RESEND_API_KEY |
Provedor de saída padrão opcional; configuração por domínio também existe no banco |
LEGACY_WEBHOOK_SECRET |
Proteção do webhook legado; vazio desabilita a exigência no handler atual |
ORACLE_AI_JUDGE_URL |
Endpoint opcional do juiz semântico remoto |
ORACLE_AI_JUDGE_TOKEN |
Credencial do juiz remoto |
FIREBASE_SERVICE_ACCOUNT_PATH |
Caminho da credencial no processo/container; montar arquivo separadamente, nunca no build público |
INGRESS_PROXY_ENABLED |
Leitura direta; somente string true ativa o proxy de ingresso |
DEFAULT_SECONDARY_INGRESS_URL |
Rota secundária; código tem fallback remoto MAIVW |
GATEWAY_PUBLIC_URL |
Base pública usada ao processar anexos SMTP |
NODE_ENV |
Ambiente do processo; container usa production, sem significar validação de segurança concluída |
O processador de anexos também usa NEXT_PUBLIC_GATEWAY_URL como fallback. Para instalação independente, configure os endpoints concretos e revise rotas criadas automaticamente.
Frontend e build
Section titled “Frontend e build”| Variável | Uso |
|---|---|
NEXT_PUBLIC_GATEWAY_URL |
API acessível pelo navegador |
NEXT_PUBLIC_RPC_URL |
RPC público no ambiente de build; o Anvil usa http://localhost:55443 |
NEXT_PUBLIC_CHAIN_ID |
Rede da interface nos caminhos que consomem a variável |
NEXT_PUBLIC_REGISTRY_CONTRACT_ADDRESS |
Proxy configurado para operações da interface |
NEXT_PUBLIC_WEBMAIVW_URL |
Links do Dashboard para Webmail |
NEXT_PUBLIC_DASHBOARD_URL |
Argumento previsto no Dockerfile; não implica uso por todas as telas |
NEXT_PUBLIC_PAYMENT_API_URL |
Integração externa de pagamentos; serviço não incluído no Compose |
NEXT_PUBLIC_FIREBASE_API_KEY |
Configuração pública do projeto Firebase |
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN |
Domínio de autenticação Firebase |
NEXT_PUBLIC_FIREBASE_PROJECT_ID |
Projeto Firebase |
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET |
Bucket Firebase |
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID |
Identificador público Firebase |
NEXT_PUBLIC_FIREBASE_APP_ID |
Identificador público da aplicação Firebase |
Mudanças de NEXT_PUBLIC_* exigem rebuild. A configuração pública Firebase não é a credencial de serviço do backend. O frontend exige configuração Firebase própria para login social; valores ausentes produzem erro de configuração, sem recorrer a um projeto compartilhado.

