Início rápido

Início rápido — Node.js

Publique uma aplicação Node.js funcional na Zenifra usando origem Repositório GitHub.

Pré-requisitos

Nota: Este quickstart cobre apenas projetos com origem em Repositório GitHub.

Passo 1 — Crie sua aplicação

mkdir hello-zenifra
cd hello-zenifra
npm init -y
npm install express

Crie index.js:

const express = require('express');
const app = express();

app.get('/', (req, res) => {
  res.json({ message: 'Hello from Zenifra!', time: new Date().toISOString() });
});

app.get('/health', (req, res) => {
  res.json({ status: 'ok' });
});

const PORT = process.env.PORT || 3000;
app.listen(PORT, '0.0.0.0', () => {
  console.log(`Server running on port ${PORT}`);
});

Atualize o package.json com um comando de start:

{
  "scripts": {
    "start": "node index.js"
  }
}

Confirme que package-lock.json foi gerado antes de publicar o projeto.

Passo 2 — Publique no GitHub

Crie um repositório no GitHub e envie o código:

git init
git add .
git commit -m "Initial commit"
git branch -M main
git remote add origin https://github.com/your-username/hello-zenifra.git
git push -u origin main

Passo 3 — Crie o projeto na Zenifra

  1. No console, escolha Origem de Projeto como Repositório GitHub.
  2. Selecione o repositório e a branch main.
  3. No campo de runtime, selecione Node.js.
  4. No campo Porta, informe 3000.
  5. Em build, use o comando necessário para seu projeto ou deixe vazio se não houver build.
  6. Em start, use npm start.
  7. Se desejar atualização automática por push, habilite auto-deploy na criação.
  8. Clique em Criar Projeto.

Passo 4 — Valide o deploy

Abra a URL em *.clients.zenifra.com. Você verá:

{ "message": "Hello from Zenifra!", "time": "2026-04-30T14:00:00.000Z" }

Também teste /health para confirmar que a aplicação está pronta.

Se auto-deploy tiver sido habilitado na criação, a Zenifra atualizará a instância automaticamente a cada envio para main.

Solução de problemas

ProblemaSolução
A aplicação não iniciaVerifique se o valor configurado no campo Porta corresponde à porta em que sua aplicação realmente escuta
URL não respondeConfirme se a aplicação escuta em 0.0.0.0
Build falhouRevise package.json, package-lock.json e comandos configurados

Próximos passos