Este guia mostra como colocar no ar uma API Node.js (Express) que usa Knex e PostgreSQL, de forma gratuita, usando a plataforma Render.
- Conta gratuita no Render
- Projeto pronto com:
ExpressconfiguradoKnexconfiguradopackage.jsoncom scripts (start,migrateetc)- Banco de dados PostgreSQL já criado no Render
Se você ainda não fez o projeto, siga o tutorial do Medium (ou clone o repositório).
Depois, entre na pasta do projeto:
https://github.com/arturbomtempo-dev/jwt-authentication-tutorial.git
cd jwt-authentication-tutorial- Acesse o Render → clique em New → PostgreSQL.
- Dê um nome ao banco.
- Escolha o plano gratuito.
- Quando o banco for criado, copie as URLs de conexão:
- Internal Database URL → use na API (mais rápido e seguro).
- External Database URL → use no seu computador, caso queira conectar com DBeaver/pgAdmin.
No seu projeto do Render (Web Service):
- Vá em Settings → Environment Variables.
- Crie a variável:
DATABASE_URL = (cole aqui a Internal Database URL)
- Se precisar, adicione também:
JWT_SECRET = chave_secreta_para_hashing
NODE_ENV = production
PORT = 10000
- Clique em New → Web Service.
- Conecte seu GitHub e escolha o repositório.
- Configure:
- Environment: Node
- Build Command:
npm install - Start Command:
npm start
- Deploy será iniciado automaticamente.
No seu knexfile.js, ajuste assim:
require('dotenv').config();
module.exports = {
development: {
client: 'pg',
connection: {
host: process.env.DB_HOST,
port: process.env.DB_PORT,
user: process.env.DB_USER,
password: process.env.DB_PASSWORD,
database: process.env.DB_NAME,
},
migrations: { directory: './src/db/migrations' },
seeds: { directory: './src/db/seeds' },
},
production: {
client: 'pg',
connection: {
connectionString: process.env.DATABASE_URL,
ssl: { rejectUnauthorized: false },
},
migrations: { directory: './src/db/migrations' },
seeds: { directory: './src/db/seeds' },
},
};Importante: Render exige
ssl: { rejectUnauthorized: false }em produção.
No Render, abra o terminal do serviço e rode:
npx knex migrate:latestIsso cria as tabelas no banco.
Depois do deploy, o Render vai gerar uma URL do tipo:
https://sua-api.onrender.com
Teste no navegador ou com Postman/Insomnia.
Se sua API tem rota /users, por exemplo:
https://sua-api.onrender.com/users
Pronto!
Você tem uma API Express + Knex + PostgreSQL rodando no Render (100% grátis).
Agora qualquer pessoa pode acessar de qualquer lugar pelo link.