Pular para o conteúdo principal
Versão: 1.0

Deploy na nuvem

Para o professor

Os grupos não sobem o backend — eles consomem. Esta página é para quem hospeda a instância única da turma. Os alunos só precisam da URL base + a chave deles.

Suba uma instância e todos os grupos consomem dela (e a auditoria fica num lugar só). O caminho mais simples é o Render (tem free tier e Postgres gerenciado). Railway e Fly.io são equivalentes.

1. Código no Git​

git init && git add . && git commit -m "Backend e-commerce da turma"
git remote add origin <seu-repo> && git push -u origin main
Nunca suba o .env

O .gitignore já ignora .env e node_modules. Segredos (JWT_SECRET, ADMIN_TOKEN) vão nas variáveis de ambiente do provedor, não no repositório.

2. Banco Postgres​

No Render → New → PostgreSQL. Copie a Internal Database URL.

3. Web Service​

New → Web Service, aponte para o repositório:

CampoValor
RuntimeNode
Build Commandnpm install && npm run build && npm run prisma:deploy
Start Commandnpm start

4. Variáveis de ambiente​

VariávelValor
DATABASE_URLa Internal Database URL do passo 2
JWT_SECRETstring longa e aleatória
ADMIN_TOKENseu token secreto de admin
NODE_ENVproduction
CORS_ORIGIN* (ou as URLs dos apps dos grupos)
PORT/HOST

O Render define PORT/HOST sozinho — o servidor já respeita a env PORT.

5. Deploy e teste​

curl https://ecommerce-turma.onrender.com/health # { "status": "ok" }
# doc viva: https://ecommerce-turma.onrender.com/docs

6. Criar os grupos (uma vez)​

O prisma:deploy do build já cria as tabelas. Crie os grupos pelos endpoints de admin (X-Admin-Token) apontando para a URL de produção — veja Endpoints › Loja/Admin.