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 Render | Para que serve |
|---|---|
| Repository | Repositório Git do serviço |
| Branch | Branch publicada |
| Root Directory | Pasta da aplicação dentro do repositório (monorepo). Vazio significa a raiz |
| Build Command | Instala dependências e gera a build, como npm install && npm run build |
| Pre-Deploy Command | Roda antes de cada deploy, normalmente migrações de banco |
| Start Command | Inicia a aplicação, como npm start ou gunicorn app:app |
| Auto-Deploy | Se 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,healthCheckPatheenvVars.
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 Render | No console da Zenifra |
|---|---|
| Repository | Origem do Projeto: Repositório Git, com Provedor Git GitHub (ou Forgejo) e o mesmo repositório |
| Branch | Branch do projeto |
| Linguagem do serviço | Runtime e Versão (Node.js, Python, Bun, Go, Java ou PHP) |
| Root Directory | Diretório raiz. Deixe . se o campo estava vazio no Render |
| Build Command | Comando Build |
| Pre-Deploy Command | Início do Comando Start, como npm run migrate && npm start |
| Start Command | Comando Start |
| Auto-Deploy ligado | Modo de deploy Automático por branch |
| Auto-Deploy desligado | Modo de deploy Manual |
| Porta do servidor | Porta, em Configurações Avançadas. Veja Porta |
| Environment Variables | Variáveis de Ambiente |
| Health Check Path | Caminho 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
| Render | Zenifra |
|---|---|
| Background Worker | Projeto HTTP com Exposição Privado e o Comando Start do worker |
| Cron Job | Job agendado |
| Static Site | Site estático |
| Render Postgres | PostgreSQL gerenciado. Copie os dados com pg_dump e pg_restore |
| Render Key Value | Cache gerenciado ou Chave-Valor |
| Preview Environments | Ambientes 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
- Abra a URL
*.clients.zenifra.comdo projeto e teste login, fluxos principais, e-mails e webhooks. - Confira em Logs de build e nos logs da aplicação se não há erros.
- 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.
- 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
Migrar da Netlify para a Zenifra
Passo a passo para trazer um site da Netlify para a Zenifra: onde copiar Build command, Publish directory e variáveis, como traduzir netlify.toml, _redirects e _headers, Functions, Forms e DNS, e onde informar cada valor no console.
Migrar da Railway para a Zenifra
Passo a passo para trazer serviços da Railway para a Zenifra: onde copiar Root Directory, build e start commands e variáveis, como traduzir variáveis de referência, cron, volumes e bancos, e onde informar cada valor no console.