Este guia explica como fazer deploy da API no Render.com.
- Conta no Render.com
- Repositório Git (GitHub, GitLab ou Bitbucket)
- Código da API commitado no repositório
A API está configurada para deploy automático no Render usando o arquivo render.yaml.
- render.yaml - Configuração principal do Render
- package.json - Scripts de build atualizados
- Dockerfile - Configuração Docker (opcional)
- env.example - Exemplo de variáveis de ambiente
# Fazer commit de todas as alterações
git add .
git commit -m "Configuração para deploy no Render"
git push origin main- Acesse Render Dashboard
- Clique em "New +" → "Web Service"
- Conecte seu repositório Git
- Selecione o repositório da API
- Configure os detalhes:
- Name:
products-backend-api - Region:
Oregon (US West)ou mais próximo - Branch:
main - Root Directory: deixe vazio
- Environment:
Node - Build Command:
npm install && npm run build && npm run init-db - Start Command:
npm start
- Plan:
Free(ou escolha um pago) - Node Version:
18(será detectado automaticamente)
Configure as seguintes variáveis de ambiente no Render:
NODE_ENV=production
PORT=10000
DATABASE_PATH=/opt/render/project/src/database.sqlite
Como configurar:
- No dashboard do serviço, vá para "Environment"
- Adicione cada variável clicando em "Add Environment Variable"
O Render irá:
- Clonar o repositório
- Instalar dependências (
npm install) - Compilar TypeScript (
npm run build) - Inicializar banco de dados (
npm run init-db) - Iniciar o servidor (
npm start)
O arquivo render.yaml automatiza toda a configuração:
services:
- type: web
name: products-backend-api
env: node
plan: free
buildCommand: npm install && npm run build && npm run init-db
startCommand: npm start
envVars:
- key: NODE_ENV
value: production
- key: PORT
value: 10000
healthCheckPath: /api/health
disk:
name: products-db
mountPath: /opt/render/project/src
sizeGB: 1- Coloque o arquivo
render.yamlna raiz do projeto - No Render, escolha "Blueprint" em vez de "Web Service"
- Conecte o repositório
- O Render lerá automaticamente a configuração
A API tem um endpoint de health check em /api/health que o Render usa para monitorar a aplicação.
Acesse os logs em tempo real no dashboard do Render:
- Vá para o seu serviço
- Clique na aba "Logs"
O Render fornece métricas básicas como:
- CPU usage
- Memory usage
- Response times
- Error rates
Após o deploy, sua API estará disponível em:
https://products-backend-api.onrender.com
- Health check:
https://products-backend-api.onrender.com/api/health - Produtos:
https://products-backend-api.onrender.com/api/produtos - Clientes:
https://products-backend-api.onrender.com/api/clientes
O banco SQLite será criado automaticamente no primeiro deploy. Os dados persistem usando o disco configurado no render.yaml.
Para fazer backup do banco:
- Use o shell do Render para acessar o arquivo
- Ou implemente endpoints para exportar dados
Se preferir não usar o render.yaml:
- Build Command:
npm install && npm run build && npm run init-db - Start Command:
npm start - Environment Variables:
NODE_ENV=productionPORT=10000
Configure auto-deploy para fazer deploy automático a cada push:
- Vá para "Settings" → "Build & Deploy"
- Ative "Auto-Deploy"
-
ESLint falha no CI/CD
# Solução: Reinstalar dependências npm run clean # Ou manualmente: rm -rf node_modules package-lock.json npm install
-
Build falha
- Verifique se todas as dependências estão no
package.json - Confirme que o TypeScript compila localmente
- Execute
npm run lintpara verificar problemas de código
- Verifique se todas as dependências estão no
-
Banco não inicializa
- Verifique se o comando
npm run init-dbestá no build - Confirme as permissões de escrita no diretório
- Verifique se o comando
-
Aplicação não inicia
- Verifique os logs no dashboard
- Confirme se a porta está configurada corretamente
-
Health check falha
- Verifique se
/api/healthresponde localmente - Confirme se o servidor está ouvindo na porta correta
- Verifique se
-
Erro "@typescript-eslint/recommended config not found"
# Instalar dependências corretas npm install --save-dev @typescript-eslint/eslint-plugin @typescript-eslint/parser # Verificar configuração no .eslintrc.json { "extends": ["eslint:recommended", "plugin:@typescript-eslint/recommended"] }
# Ver logs em tempo real no dashboard do Render
# Ou usar CLI do Render (se instalado)
render logs -s products-backend-apiPara atualizar a aplicação:
- Faça commit das alterações
- Push para o branch configurado
- O Render fará deploy automaticamente
- Free Plan: 750 horas/mês, hiberna após 15 min de inatividade
- Starter Plan: $7/mês, sem hibernação
- Standard Plan: $25/mês, mais recursos
Se preferir outras plataformas:
- Heroku: Similar ao Render
- Railway: Boa alternativa
- DigitalOcean App Platform: Para mais controle
- AWS/GCP/Azure: Para aplicações enterprise