> ## Knowledge Base Index
> Fetch the complete knowledge base index at: https://help.squarecloud.app/sitemap.xml
> Use this file to discover available pages before exploring further.
> Pure-Markdown content can be obtained by appending a '.md' suffix to the content URLs listed in the sitemap (without the trailing slash).

# Como hospedar uma aplicação Flask (host 0.0.0.0)

Precisa **hospedar sua aplicação Flask** e configurar o `app.run(host="0.0.0.0")` para aceitar conexões externas? Este guia mostra o passo a passo para colocar seu app Flask online na Square Cloud, com Gunicorn em produção e rodando 24/7.

1. Pré-requisitos
* **Conta na Square Cloud:** Crie sua conta via [Página de Registro](https://squarecloud.app/pt-br/signup) (E-mail ou GitHub).
* **Plano Ativo:** É necessário um plano pago para realizar a hospedagem. Confira os [preços aqui](https://squarecloud.app/pt-br/pricing).

---

## 2. Configuração para Produção (Gunicorn)

Embora o Flask possua um servidor embutido (`app.run()`), ele não é adequado para produção. O **Gunicorn** permite que sua aplicação lide com múltiplas requisições simultâneas de forma eficiente.
Para que a Square Cloud direcione o tráfego corretamente, o Gunicorn deve ser configurado para ouvir na interface **0.0.0.0** e na porta **80**.

### Exemplo da Aplicação (`app.py`)
```python
from flask import Flask

app = Flask(__name__)

@app.route('/')
def hello_world():
    return 'Flask rodando em produção na Square Cloud!'

if __name__ == '__main__':
    # O app.run só é usado localmente
    app.run(host='0.0.0.0', port=80)
```

---

## 3. Realizando o Deploy

1.  **Compactação:** Crie um arquivo `.zip` com seu código fonte e o `requirements.txt`. Não inclua pastas de cache como `__pycache__` ou ambientes virtuais (`venv`). O `requirements.txt` deve estar na raiz do projeto e contendo ao menos:
```text
  flask
  gunicorn
```
2.  **Upload:** No Dashboard da Square Cloud, clique em enviar nova aplicação.
3.  **Publicação Web:** No menu de envio, marque a opção **"Publicar na Web"**.
4.  **Subdomínio:** Escolha o nome para o seu subdomínio gratuito (ex: `minha-api.squareweb.app`).
5.  **Comando de Início Personalizado:** Para utilizar o Gunicorn, você deve definir um comando de início personalizado no momento do envio (ou no arquivo de configuração `squarecloud.app`). Utilize o seguinte formato:
```bash
python -m gunicorn --bind 0.0.0.0:80 app:app
```
* **`--bind 0.0.0.0:80`**: Expõe a aplicação na porta exigida pela plataforma.
* **`app:app`**: Indica que o Gunicorn deve procurar o objeto `app` (o segundo "app") dentro do arquivo `app.py` (o primeiro "app").
---

## 4. Domínios Personalizados (Plano Standard+)

Usuários do plano **Standard ou superior** podem configurar domínios próprios:
* Adicione seu domínio (ex: `api.seusite.com`) na aba **Network**.
* A Square Cloud gerencia automaticamente o **SSL/HTTPS**, garantindo que sua comunicação seja criptografada sem custo adicional.

---

## 5. Dicas de Otimização

* **Workers:** Se sua aplicação receber muito tráfego, você pode ajustar o número de workers no comando de início (ex: `--workers 3`).
* **Variáveis de Ambiente:** Utilize a aba **ENV** no Dashboard para armazenar `SECRET_KEY`, chaves de API e URLs de banco de dados.
* **Logs:** Monitore o terminal do Dashboard para identificar erros de inicialização ou exceções do Python em tempo real.