> ## 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 Fastify (Node.js)

Já tem o **Fastify instalado** (`npm i fastify`) e quer **colocar sua API Fastify online**? Este guia mostra como hospedar uma aplicação Fastify na Square Cloud — configurando o `host` em `0.0.0.0` e a porta certa para rodar 24/7.

## 1. Pré-requisitos

Antes de subir sua aplicação Fastify, verifique se você possui:
* **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 Técnica do Webserver

Para que sua aplicação Fastify receba requisições externas na Square Cloud, você deve configurar o servidor para ouvir na porta **80** e, crucialmente, na interface de rede **0.0.0.0**.

### Exemplo de Código (Fastify v4+)
Diferente de outros frameworks, o Fastify exige que o `host` seja especificado explicitamente para aceitar conexões externas em ambientes de container/nuvem.

```javascript
const fastify = require('fastify')({ logger: true });

const start = async () => {
  try {
    // Configuração vital para a Square Cloud
    await fastify.listen({ 
      port: 80, 
      host: '0.0.0.0' 
    });
    
    console.log("Webserver Fastify online na porta 80");
  } catch (err) {
    fastify.log.error(err);
    process.exit(1);
  }
};

fastify.get('/', async (request, reply) => {
  return { status: 'online', framework: 'Fastify' };
});

start();
```

---

## 3. Processo de Deploy

Siga estes passos para colocar sua aplicação no ar:

1.  **Limpeza e Compactação:** Crie um arquivo `.zip` contendo seu código fonte e o `package.json`. **Não inclua a pasta&#32;`node_modules`**, pois a Square Cloud instalará as dependências automaticamente durante o build.
2.  **Upload:** No Dashboard, clique em enviar nova aplicação e selecione o seu arquivo.
3.  **Publicação Web:** No menu de envio, localize e marque a opção **"Publicar na Web"**.
4.  **Definição de Subdomínio:** Escolha o nome para o seu subdomínio gratuito. O link final seguirá o padrão `seusubdominio.squareweb.app`.

---

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

Se você utiliza o plano **Standard ou superior**, você pode elevar o nível do seu projeto utilizando um domínio próprio (ex: `api.seusite.com`).

* A configuração é feita na aba **Network** da aplicação no Dashboard.
* O certificado SSL (HTTPS) é gerado e renovado automaticamente pela Square Cloud, garantindo segurança total sem custos adicionais ou configurações manuais de certificados.

---

## 5. Dicas de Otimização

* **Logger em Produção:** O Fastify possui um logger embutido (Pino). Em produção, certifique-se de configurar o nível de log adequadamente para não sobrecarregar o armazenamento de logs desnecessariamente.
* **Variáveis de Ambiente:** Armazene chaves de API e conexões de banco de dados no sistema de **ENVs** da Square Cloud.
* **Schema Validation:** Aproveite o sistema de validação de JSON Schema do Fastify para aumentar a performance da serialização de dados na sua API hospedada.