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

# Solucionar problemas de publicação

> Saiba como resolver problemas comuns ao publicar seu app.

Esta página aborda problemas comuns que você pode encontrar ao publicar seu app e como resolvê-los.

## Problemas comuns de publicação

### Seu app não funciona no Project Editor

Antes de publicar, verifique se o seu app roda corretamente. Selecione o botão **Run** no topo do Project Editor. Se o Preview não exibir seu app com uma URL `replit.dev`, o seu código tem um problema que precisa ser corrigido antes que você possa publicar.

### Seu programa encerra em vez de rodar continuamente

Os apps publicados esperam que o seu programa rode indefinidamente. Se o seu programa executa uma função e encerra, a plataforma o reinicia automaticamente. Certifique-se de que a sua aplicação inicia um processo de longa duração, como um servidor web.

### Seu servidor não está ouvindo em `0.0.0.0`

Se você estiver rodando um servidor web, os Deployments podem detectar automaticamente qual porta o servidor usa — mas somente se o servidor ouvir em `0.0.0.0`. Ouvir em `localhost` ou `127.0.0.1` não funciona.

### Sua aplicação tem erros

Verifique a aba **Logs** no topo do painel **Publishing** para visualizar a saída da sua aplicação. Procure por stack traces ou exceções — eles indicam erros de código, como variáveis não inicializadas ou pacotes ausentes.

### Seus comandos de execução ou build estão incorretos

Erros comuns incluem erros de digitação, flags incorretas ou a especificação do arquivo ou diretório errado. Verifique seus comandos no painel **Publishing** e corrija quaisquer problemas.

### Seus Secrets não estão configurados para publicação

Os Secrets que você define no Project Editor não são transferidos automaticamente para o seu app publicado. Adicione todos os Secrets de produção e variáveis de ambiente no painel **Publishing**. Secrets ausentes podem fazer com que o app falhe durante a inicialização com erros sobre valores indefinidos.

### Seu Replit App excede o limite de tamanho

Os Reserved VM e Autoscale Deployments suportam Replit Apps de até 8 GB. Os Static Deployments suportam até 1 GB. Para reduzir o tamanho do seu app, exclua arquivos desnecessários ou use um armazenamento de dados externo como o [SQL Database](/references/data-and-storage/sql-database/).

### Sua página inicial demora muito para carregar

Antes de marcar seu app publicado como ativo, uma verificação de integridade envia uma requisição HTTP para o seu app. Se a sua página inicial levar mais de cinco segundos para responder, a verificação expira e a publicação falha na etapa final.

### Sua configuração de porta está incorreta

Se você tiver [portas especificadas na configuração `.replit`](/references/configuration/configuration), a detecção automática de porta estará desativada. Você deve especificar uma porta com `externalPort` definido como `80` para que a etapa de promoção seja concluída. Verifique se o servidor está ouvindo na `localPort` especificada.

### Seu deployment estático não está funcionando

Esse problema geralmente ocorre quando você especifica um diretório público incorreto ou quando o seu app não é adequado para Static Deployments. Um Static Deployment serve arquivos estáticos como HTML, CSS e JavaScript.

Se o seu app incluir qualquer comportamento do lado do servidor, ele não é um bom candidato para Static Deployments. Altere o tipo de deployment para Autoscale no painel **Publishing**.

<Warning>
  O sistema de arquivos em apps publicados não é persistente e é redefinido toda vez que você publica. Para persistência de dados, use um banco de dados como o [SQL Database](/references/data-and-storage/sql-database).
</Warning>

## Problemas de acesso com URLs `replit.app` e `replit.dev`

Se você tiver dificuldades para acessar seu app em seu domínio `replit.app` ou `replit.dev` — seja no Preview ou em uma janela de navegador separada — filtros web ou restrições de rede podem ser a causa.

Tente usar resolvedores DNS públicos como o Google DNS (`8.8.8.8`) ou o Cloudflare DNS (`1.1.1.1`) para resolver esses problemas.

### Alterar as configurações de DNS

<Tabs>
  <Tab title="Windows">
    1. Abra o **Painel de Controle**.
    2. Vá para **Central de Rede e Compartilhamento**.
    3. Selecione **Alterar as configurações do adaptador** à esquerda.
    4. Clique com o botão direito na sua conexão de rede ativa e selecione **Propriedades**.
    5. Selecione **Protocolo TCP/IPv4** e selecione **Propriedades**.
    6. Escolha **Usar os seguintes endereços de servidor DNS**.
    7. Insira um endereço IP de servidor DNS público (por exemplo, `8.8.8.8` para o Google DNS ou `1.1.1.1` para o Cloudflare DNS) nos campos **Servidor DNS preferencial** e **Servidor DNS alternativo**.
    8. Selecione **OK** para salvar as alterações.

    Para instruções mais detalhadas, consulte o [guia de configuração de DNS da Microsoft](https://support.microsoft.com/en-us/windows/change-tcp-ip-settings-bd0a07af-15f5-cd6a-363f-ca2b6f391ace).
  </Tab>

  <Tab title="macOS">
    1. Abra **Preferências do Sistema**.
    2. Selecione **Rede**.
    3. Selecione sua conexão de rede ativa à esquerda.
    4. Selecione **Avançado** no canto inferior direito.
    5. Vá para a aba **DNS**.
    6. Selecione o botão **+** para adicionar um servidor DNS.
    7. Insira um endereço IP de servidor DNS público (por exemplo, `8.8.8.8` para o Google DNS ou `1.1.1.1` para o Cloudflare DNS).
    8. Selecione **OK** e depois **Aplicar**.

    Para instruções mais detalhadas, consulte o [guia de configuração de DNS da Apple](https://support.apple.com/guide/mac-help/change-dns-settings-on-mac-mh14127/mac).
  </Tab>

  <Tab title="Linux">
    1. Edite o arquivo `/etc/resolv.conf` para adicionar servidores DNS públicos. O método exato varia por distribuição.
    2. Adicione as seguintes linhas:

    ```
    nameserver 8.8.8.8
    nameserver 1.1.1.1
    ```

    Para mais informações sobre como configurar o DNS em diferentes distribuições, consulte o [guia de configuração de rede do Debian Wiki](https://wiki.debian.org/NetworkConfiguration#Defining_the_.28DNS.29_Nameservers).
  </Tab>
</Tabs>

### Limpar o cache DNS

Após alterar as configurações de DNS, limpe o cache DNS para aplicar a nova configuração:

* **Windows**: Execute `ipconfig /flushdns` no Prompt de Comando
* **macOS e Linux**: Execute `sudo systemctl restart NetworkManager` no Terminal (o comando exato pode variar de acordo com a distribuição)

<Note>
  Para melhorar o desempenho regional e a estabilidade, as URLs `replit.dev` dos seus
  Replit Apps podem ocasionalmente mudar durante migrações de cluster. Após a conclusão
  da migração, as URLs permanecem estáveis por aproximadamente um ano, a menos que você
  solicite explicitamente uma mudança de localização.
</Note>

## Publicar uma aplicação Streamlit

As aplicações Streamlit funcionam com os Replit Deployments. A maneira mais fácil de começar é com o [template Streamlit](https://replit.com/@replit/Streamlit?v=1).

Como alternativa, defina o comando de execução para publicação como:

```bash theme={null}
streamlit run --server.address 0.0.0.0 --server.headless true --server.enableCORS=false --server.enableWebsocketCompression=false main.py
```

Se a sua aplicação usar um arquivo de entrada diferente, substitua `main.py` pelo nome do seu arquivo.

***

Se precisar de ajuda adicional após tentar essas etapas, visite o [Replit Community Hub](https://replit.com/community) para mais recursos.
