Next.js
Guia prático para hospedar aplicações Next.js na Discloud.
🧭 Introdução
Este guia passo a passo mostra como preparar, configurar e fazer o deploy de uma aplicação Next.js na Discloud.
Existem duas abordagens principais:
Opção A (recomendada) – usar o
next build+next startsem servidor custom (apenas o server interno do Next.js).Opção B – usar um servidor custom com Express, útil se você precisa de rotas extras, middlewares customizados ou integrações específicas.
Além disso, mostramos uma alternativa com export estático, ideal para sites puramente estáticos.
Este guia assume que você já tem um projeto Next.js funcionando localmente.
📋 Requisitos
Plano Platinum ou superior é necessário para hospedar websites ou APIs.
Um subdomínio deve ser criado antes do deploy.
Porta 8080 é obrigatória – As aplicações devem escutar nesta porta.
🧱 Pré-requisitos locais
Antes de continuar, você vai precisar:
Node.js instalado na sua máquina.
Um projeto Next.js criado (ex.:
npx create-next-app).Uma conta na Discloud com subdomínio configurado.
Opcionalmente: Git, VSCode e/ou CLI da Discloud para facilitar o fluxo.
Se ainda não tiver familiaridade com o ambiente, confira:
NodeJS🧹 Preparando os arquivos do projeto
Antes de compactar seu projeto em .zip, crie um arquivo .discloudignore na raiz do projeto para excluir arquivos e pastas desnecessárias do upload:
O arquivo .discloudignore funciona de forma semelhante a um .gitignore, mas é usado pela Discloud para ignorar arquivos no momento do upload.
📦 package.json – scripts recomendados
package.json – scripts recomendadosDentro do seu package.json, garanta que os scripts principais do Next.js estejam definidos. Um exemplo básico:
É importante que o comando start use a porta 8080 (next start -p 8080), pois essa é a porta padrão exigida pela Discloud para websites.
✅ Opção A – Deploy sem servidor custom (Next.js "built-in")
Nesta opção, você usa somente o servidor interno do Next (next start), sem precisar de server.js.
🔁 Fluxo básico
Rodar o build localmente (opcional, mas recomendado):
Testar localmente:
Se tudo estiver funcionando, preparar o
.zipe enviar para a Discloud.
⚙️ discloud.config (exemplo)
🧩 Opção B – Custom server com Express
Se você precisa de rotas customizadas, middlewares ou integrar outras libs antes de delegar ao Next, pode usar um servidor Express que usa o Next internamente.
🧾 server.js
Crie um arquivo server.js na raiz do projeto com o seguinte conteúdo:
📦 package.json (com servidor custom)
Atualize seus scripts para utilizar o server.js em produção:
⚙️ discloud.config (custom server)
Use esta opção apenas se realmente precisar de um servidor custom. Para a maioria dos projetos, a Opção A (sem servidor custom) é mais simples e suficiente.
🧾 Alternativa – Export estático (Next.js como site estático)
Se o seu projeto não depende de SSR ou API Routes, você pode usar o next export para gerar um site totalmente estático.
📦 package.json (export estático)
⚙️ discloud.config (estático)
Sites estáticos costumam consumir menos RAM e são ideais para blogs, landing pages e documentações simples.
🔐 Variáveis de ambiente
No Next.js, variáveis de ambiente públicas devem começar com NEXT_PUBLIC_.
Defina variáveis pelo Painel da Discloud, CLI ou API.
Tudo que começa com
NEXT_PUBLIC_é embutido no bundle durante o build.
Exemplo:
Usando em componentes:
🗂️ Estrutura final recomendada do projeto
Uma estrutura típica de projeto Next.js para a Discloud pode ser:
🚀 Fazendo o deploy na Discloud
Você pode fazer deploy do seu app Next.js usando qualquer um dos métodos suportados.
Painel de ControleBot do DiscordVisual Studio CodeCLI🛠️ Troubleshooting (erros comuns)
Aplicação não abre / porta errada
Verifique se o Next está usando a porta 8080 (next start -p 8080 ou PORT=8080).
Erro de plano / permissão
Confirme se sua conta possui o plano correto para websites/APIs.
Subdomínio não configurado
Certifique-se de ter seguido o guia de subdomínio antes do deploy.
Erros de build
Execute localmente:
npm run builde corrija qualquer erro antes de enviar.Confira se todas as dependências estão listadas no
package.json.
Erros ao iniciar (START)
Verifique se o script
startestá correto.Acompanhe os logs da Discloud para ver a mensagem de erro exata.
Last updated