Migrar para a Zenifra

Migrar do Render para a Zenifra

Este guia mostra, campo a campo, onde encontrar cada configuração de um serviço no painel do Render e onde informar o mesmo valor no console da Zenifra. Para o roteiro geral de migração, com cópia de dados e troca de DNS, veja Migrar para a Zenifra.

A ideia é manter o serviço do Render no ar enquanto você sobe e valida a aplicação na Zenifra. Só desligue o Render depois de trocar o DNS.

1. Copie as configurações no Render

No painel do Render, abra o serviço que você vai migrar e clique em Settings no menu lateral do serviço.

Build & Deploy

Na seção Build & Deploy, anote:

Campo no RenderPara que serve
RepositoryRepositório Git do serviço
BranchBranch publicada
Root DirectoryPasta da aplicação dentro do repositório (monorepo). Vazio significa a raiz
Build CommandInstala dependências e gera a build, como npm install && npm run build
Pre-Deploy CommandRoda antes de cada deploy, normalmente migrações de banco
Start CommandInicia a aplicação, como npm start ou gunicorn app:app
Auto-DeploySe cada commit publica uma nova versão

Anote também a linguagem do serviço (Node, Python, Go, Docker etc.), porque ela define o Runtime na Zenifra.

Health Checks e domínios

Ainda em Settings:

  • na seção Health Checks, copie o caminho verificado, como /health
  • na lista de domínios personalizados, anote cada domínio que aponta para o serviço

Environment

Clique em Environment no menu lateral do serviço e copie o nome e o valor de cada variável em Environment Variables. Confira também:

  • Linked Environment Groups: as variáveis de grupos vinculados também chegam à aplicação; copie-as do grupo
  • Secret Files: arquivos que a aplicação lê em /etc/secrets/<arquivo>; veja Secret Files

Se o repositório tem um render.yaml, os mesmos valores estão nele: buildCommand, preDeployCommand, startCommand, rootDir, healthCheckPath e envVars.

2. Crie o projeto na Zenifra

No console, clique em + Criar projeto, escolha Aplicação HTTP e o plano. Depois preencha os campos com o que você copiou:

No RenderNo console da Zenifra
RepositoryOrigem do Projeto: Repositório Git, com Provedor Git GitHub (ou Forgejo) e o mesmo repositório
BranchBranch do projeto
Linguagem do serviçoRuntime e Versão (Node.js, Python, Bun, Go, Java ou PHP)
Root DirectoryDiretório raiz. Deixe . se o campo estava vazio no Render
Build CommandComando Build
Pre-Deploy CommandInício do Comando Start, como npm run migrate && npm start
Start CommandComando Start
Auto-Deploy ligadoModo de deploy Automático por branch
Auto-Deploy desligadoModo de deploy Manual
Porta do servidorPorta, em Configurações Avançadas. Veja Porta
Environment VariablesVariáveis de Ambiente
Health Check PathCaminho da verificação, em Editar › Healthcheck da aplicação (a partir do plano Premium)

O Build Command do Render costuma começar com a instalação de dependências, como npm install && npm run build ou pip install -r requirements.txt. Na Zenifra, a instalação já é feita na build: copie para o Comando Build só a parte depois da instalação, como npm run build. Se não sobrar nada, deixe o campo vazio. Em Go e Java, mantenha o Comando Build preenchido, porque é ele que gera o binário ou o jar que o Comando Start executa.

Em Node.js, a instalação usa npm ci e precisa de um package-lock.json versionado. Se o serviço do Render usa Yarn ou pnpm, gere e versione um package-lock.json antes de migrar ou publique como Imagem Docker. Veja Dependências Node.js.

Para ver cada campo da criação em detalhe, veja Como criar um projeto HTTP via console.

3. Ajuste o que muda entre as plataformas

Porta

No Render, a aplicação escuta na porta da variável PORT, que por padrão vale 10000. Na Zenifra, a porta é o campo Porta do projeto. Se o código lê PORT, defina os dois com o mesmo valor, por exemplo Porta 3000 e a variável PORT=3000. A aplicação precisa escutar em 0.0.0.0.

Variáveis do Render

Variáveis criadas pelo próprio Render, como RENDER_EXTERNAL_URL e RENDER_GIT_COMMIT, não existem na Zenifra. Se o código usa alguma delas, crie uma variável com o valor equivalente, como a URL do projeto na Zenifra.

Variáveis na build

Em projetos com origem no GitHub, as variáveis do projeto também ficam disponíveis no Comando Pré-build e no Comando Build, como no Render. Veja Variáveis durante o build.

Secret Files

A Zenifra não tem arquivos secretos. Se o arquivo é pequeno, como um JSON de credenciais, guarde o conteúdo em uma variável de ambiente e leia a variável no código. Arquivos grandes podem ficar no armazenamento persistente.

Serviços com Docker

Se o serviço do Render usa a linguagem Docker, publique a aplicação como Imagem Docker: gere a imagem a partir do seu Dockerfile, envie para um registry e informe a imagem no projeto. O guia de Dockerfile e a GitHub Action mostram como automatizar isso. Se o serviço usa Docker Command, coloque esse comando no CMD do Dockerfile.

Persistent Disk

Se o serviço tem um disco, ative o armazenamento persistente na criação do projeto e use o mesmo caminho de montagem em Diretório para Persistir. Esse caminho não pode ser alterado depois da criação.

4. Outros serviços do Render

RenderZenifra
Background WorkerProjeto HTTP com Exposição Privado e o Comando Start do worker
Cron JobJob agendado
Static SiteSite estático
Render PostgresPostgreSQL gerenciado. Copie os dados com pg_dump e pg_restore
Render Key ValueCache gerenciado ou Chave-Valor
Preview EnvironmentsAmbientes de Preview

Crie os bancos antes da aplicação, para já cadastrar as novas URLs de conexão nas variáveis.

5. Valide e troque o DNS

  1. Abra a URL *.clients.zenifra.com do projeto e teste login, fluxos principais, e-mails e webhooks.
  2. Confira em Logs de build e nos logs da aplicação se não há erros.
  3. Siga o checklist do dia da troca: reduza o TTL do DNS, faça a cópia final dos dados, adicione o domínio na Zenifra e atualize o DNS.
  4. Mantenha o serviço do Render ligado por alguns dias para rollback e só então o remova.

Precisa de ajuda?

Escreva para [email protected] com os campos que você copiou do Render ou fale pelo WhatsApp +55 (11) 5199-3013.

Última atualização em

Nessa página