> ## Documentation Index
> Fetch the complete documentation index at: https://docs.cubehosting.com.br/llms.txt
> Use this file to discover all available pages before exploring further.

# Site não abre

> Este site não respondeu, está parado, sobrecarregado ou o endereço não existe; porta em uso e build do Next.js: o que cada mensagem significa e como corrigir.

Um site na Cube precisa de duas coisas: escutar em **`0.0.0.0`** e na porta da variável **`PORT`**. Quase todo site que não abre falha numa delas. Veja o guia completo em [Sites e APIs](/hosting/sites-and-apis).

## Este site não respondeu

**O que significa:** o visitante vê a página **Erro 503 · Este site não respondeu.** O projeto está ligado, mas o app não atendeu.

**Por que acontece:**

* **O app escuta em `localhost` ou `127.0.0.1`.** Assim, só o próprio processo alcança o app, e as visitas não chegam. É o padrão do `app.run()` do Flask e do `uvicorn` sem `--host`. (O `gunicorn` sem `-b` já escuta certo: ele lê a variável `PORT` e usa `0.0.0.0`.)
* **O app escuta em outra porta.** A porta fixa no código (`3000`, `5000`) é diferente da `PORT` do projeto (a do `port` do `cube.json`, padrão `8080`).
* **O app ainda está subindo** ou caiu. Confira o status e os logs.

Um pedido que passa **100 segundos** sem resposta também é encerrado, mas com um erro de tempo esgotado. Nesse caso, responda antes e deixe o trabalho longo em segundo plano.

**Como corrigir:**

1. Em **Logs** › **Aplicação**, veja em que endereço o app diz que está escutando.
2. Troque para `0.0.0.0` e a porta da variável `PORT`, como nos exemplos abaixo.
3. Reinicie o projeto e abra o endereço de novo.

<CodeGroup>
  ```python Flask theme={"dark"}
  import os

  app.run(host='0.0.0.0', port=int(os.environ.get('PORT', 8080)))
  ```

  ```js Express theme={"dark"}
  const port = Number(process.env.PORT) || 8080;
  app.listen(port, '0.0.0.0');
  ```

  ```text gunicorn (Comando de início) theme={"dark"}
  gunicorn -w 2 -b 0.0.0.0:$PORT app:app
  ```

  ```text uvicorn (Comando de início) theme={"dark"}
  uvicorn main:app --host 0.0.0.0 --port $PORT
  ```
</CodeGroup>

Nos logs, o problema aparece assim, com o app citando só o `127.0.0.1`:

```text Logs › Aplicação theme={"dark"}
 * Running on http://127.0.0.1:5000
INFO:     Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit)
```

Com `host='0.0.0.0'`, o Flask também lista o `127.0.0.1`, mas escreve antes `Running on all addresses (0.0.0.0)`. Aí está certo: o `127.0.0.1` é só um dos endereços em que ele atende.

```text Logs › Aplicação (certo) theme={"dark"}
 * Running on all addresses (0.0.0.0)
 * Running on http://127.0.0.1:8080
 * Running on http://10.128.1.2:8080
```

## Este site está parado

**O que significa:** o visitante vê **Erro 503 · Este site está parado.** O projeto não está no ar.

**Por que acontece:** o projeto foi parado, ainda não foi iniciado, caiu (no Free, ou em loop de erro nos pagos) ou a conta está suspensa por falta de pagamento.

**Como corrigir:** abra o projeto no painel. Se ele caiu, veja o motivo em **Logs** e em [O projeto não inicia](/troubleshooting/app-wont-start); depois, clique em **Iniciar**.

## Este endereço não existe

**O que significa:** o visitante vê **Erro 404 · Este endereço não existe.** Nenhum site usa esse subdomínio.

**Por que acontece:** o endereço foi digitado errado, o subdomínio foi trocado ou o projeto foi excluído.

**Como corrigir:** confira o endereço em **Configurações** › **Rede** do projeto. Veja [Endereço e domínios](/hosting/domains).

## Este site está sobrecarregado

**O que significa:** o visitante vê **Erro 503 · Este site está sobrecarregado.** O site recebeu conexões demais ao mesmo tempo, no total ou de um mesmo visitante.

**Por que acontece:** um pico de acessos, um teste de carga ou respostas lentas, que seguram as conexões abertas por mais tempo.

**Como corrigir:** espere alguns segundos. Se acontece sempre, deixe as respostas mais rápidas (cache, menos trabalho por pedido) e fale com a gente no [Discord](https://discord.gg/pv6D9tUsDV).

## `Error: listen EADDRINUSE: address already in use`

**O que significa:** o app tentou escutar numa porta que já está em uso dentro do próprio projeto.

**Por que acontece:** o código chama `listen` duas vezes (dois servidores, ou um `listen` dentro de um evento que roda mais de uma vez), ou o comando de início liga dois processos que usam a mesma porta.

**Como corrigir:**

1. Procure no código mais de um `.listen()` (Node.js) ou `run()` (Python) e deixe só um, no começo do arquivo principal.
2. Se o site tem mais de um servidor, só um escuta na `PORT`.
3. Envie o código de novo.

```text Logs › Aplicação theme={"dark"}
Error: listen EADDRINUSE: address already in use 0.0.0.0:8080
```

## `Could not find a production build in the '.next' directory`

**O que significa:** o `next start` não achou o build do Next.js.

**Por que acontece:** o build não rodou. A Cube roda o build sozinha quando o `package.json` tem o script `build`; sem ele, ou com `"build": ""` no `cube.json`, nada é compilado.

**Como corrigir:**

1. Confira se o `package.json` tem `"build": "next build"` em `scripts`.
2. Confira em **Logs** › **Instalação** se o build terminou sem erro.
3. Envie o código de novo.

```text Logs › Aplicação theme={"dark"}
Error: Could not find a production build in the '.next' directory. Try building your app with 'next build' before starting the production server.
```

## O WebSocket fecha sozinho

**O que significa:** a conexão WebSocket (ou SSE) cai depois de um tempo parada.

**Por que acontece:** uma conexão que fica **100 segundos** sem trocar nenhum byte é encerrada.

**Como corrigir:** mande um ping de tempos em tempos (a cada 30 segundos, por exemplo) e reconecte do lado do navegador quando a conexão cair.
