Skip to content

fix(infra): compatibilizar resolução de porta com Render e Docker#16

Merged
diego64 merged 1 commit into
mainfrom
fix/porta-render-cloud
Jun 7, 2026
Merged

fix(infra): compatibilizar resolução de porta com Render e Docker#16
diego64 merged 1 commit into
mainfrom
fix/porta-render-cloud

Conversation

@diego64

@diego64 diego64 commented Jun 7, 2026

Copy link
Copy Markdown
Owner

Summary

  • Extract env parsing logic from servidor.ts into src/infra/http/env.ts, exposing resolverEnv as a testable function
  • resolverEnv prioritizes PORT (injected by Render/cloud platforms) over PORTA (local/Docker convention), keeping default 3000 when neither is set
  • Without this fix, the server always listened on port 3000 while Render injected PORT=10000, causing health checks to fail and the service to crash on startup

Root cause

Render injects the PORT environment variable automatically. The app was only reading PORTA (Portuguese naming convention), so schemaEnv.safeParse(process.env) fell back to the default 3000 — mismatching Render's expected port.

Test plan

  • 10 unit tests added in src/testes/unitarios/infra/env.test.ts
    • PORT takes precedence over PORTA when both are set
    • PORT alone resolves correctly (Render scenario)
    • PORTA alone resolves correctly (local/Docker scenario)
    • Default 3000 applies when neither is set
    • Validation fails for missing/short JWT_SECRETO, missing MONGO_URI, missing REDIS_URL
  • pnpm lint && pnpm typecheck && pnpm test — all passing locally

🤖 Generated with Claude Code

Extrai logica de parsing de env para src/infra/http/env.ts com funcao
resolverEnv que prioriza PORT (injetado pelo Render/cloud) sobre PORTA
(variavel local/Docker), mantendo o default 3000 quando nenhuma e definida.

Adiciona 10 testes unitarios cobrindo resolucao de porta e validacao
das variaveis obrigatorias (JWT_SECRETO, MONGO_URI, REDIS_URL).
@diego64 diego64 merged commit d4472bc into main Jun 7, 2026
@diego64 diego64 deleted the fix/porta-render-cloud branch June 7, 2026 01:24
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant