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

# Como Hospedar Aplicações Vite

> Aprenda a fazer o deploy da sua aplicação Vite na Square Cloud.

export const PortNote = ({lang}) => {
  if (lang == 'pt-br') {
    return <Note>
            <b>Qual porta devo usar para o meu servidor?</b><br />
            Você deve usar a porta <b>80</b> para o seu servidor. A porta 80 é a porta padrão para tráfego HTTP; a Square Cloud a encaminha para 443 (HTTPS) para estabelecer uma conexão segura.<br />
            Certifique-se de configurá-la antes de compactar e enviar seu projeto.
        </Note>;
  }
  return <Note>
            <b>What port should I use for my server?</b><br />
            You should use port <b>80</b> for your server. Port 80 is the default port for HTTP traffic, which is handled by Square Cloud to route it to 443, HTTPS, for a secure connection.<br />
            Make sure to configure it before compressing and uploading your project.
        </Note>;
};

export const RecommendedPlan = ({lang, plan, tier, cpu, appType}) => {
  const url = `https://squarecloud.app/${lang}/pay?plan=${plan.toLowerCase()}&tier=${tier}`;
  if (lang == 'en') {
    return <Note>
        <b>Wondering how much RAM and CPU your plan needs to host {appType}?</b><br />
        Don't worry, we're here to help.
        Our <a href={url}>{plan}</a> plan offers <b>{tier}GB</b> of RAM and <b>{cpu}vCPU</b>, which should be sufficient for most {appType}. 
        However, if you are working on a larger project and seeking extra stability, we recommend considering our <b>Pro</b> plan. With additional resources, you can maintain stability even during demand spikes. 
        To purchase, simply click <a href="https://squarecloud.app/en/pay?plan=pro">here</a>.
      </Note>;
  } else {
    return <Note>
          <b>Está se perguntando quanta RAM e CPU seu plano precisa para hospedar {appType}?</b><br />
          Não se preocupe, estamos aqui para ajudar.
          Nosso plano <a href={url}>{plan}</a> oferece <b>{tier}GB</b> de RAM e <b>{cpu}vCPU</b>, o que deve ser suficiente para a maioria dos {appType}.
          No entanto, se você estiver trabalhando em um projeto maior e precisar de mais estabilidade, recomendamos considerar nosso plano <b>Pro</b>.
          Com recursos adicionais, você pode manter a estabilidade mesmo durante picos de demanda.
          Para comprar, basta clicar <a href={`https://squarecloud.app/${lang}/pay?plan=pro`}>aqui</a>.
        </Note>;
  }
};

export const appType_0 = "uma aplicação Vite"

## Introdução

Para desenvolver e hospedar um aplicativo {appType_0} no Square Cloud, é essencial seguir uma sequência estruturada de configurações e pré-requisitos.
Este guia técnico abordará todo o processo, desde a configuração inicial até a implantação em produção.

### Pré-requisitos

* **Conta Square Cloud**: Cadastre-se através da [página de cadastro](https://squarecloud.app/pt-br/signup) usando seu e-mail.
* **Plano Pago Ativo**: Garante recursos dedicados e desempenho otimizado para seu aplicativo. Confira nossos [planos disponíveis](https://squarecloud.app/pt-br/pricing) e escolha o mais adequado às suas necessidades.

<RecommendedPlan appType="Aplicações Vite" plan="Standard" tier="4" cpu="4" lang="pt-br" />

## Criando o projeto

Antes de começar, certifique-se de ter o Node.js e o npm instalados em seu sistema.
Se ainda não os tem, você pode baixá-los no [site oficial do Node.js](https://nodejs.org/).

Para criar um novo projeto Vite, execute o seguinte comando:

```bash theme={null}
npm create vite@latest my-vite-app
```

No comando acima, `my-vite-app` é o nome do seu novo projeto. Substitua-o por qualquer nome desejado para seu projeto. Por padrão, este comando configura um projeto Vite com JavaScript.

### Escolhendo um Template Específico

O Vite permite escolher diferentes templates para o seu projeto. Ao criar um novo projeto, você pode especificar o template desejado usando a opção `--template`. Aqui estão alguns exemplos:

Selecione um template como: `react`, `vue` e `lit`.

```bash theme={null}
npm create vite@latest my-vite-app --template [template]
```

Escolha o template que melhor se adapta às suas necessidades e ajuste o nome do projeto conforme necessário.

### Entendendo a Diferença entre JavaScript e TypeScript

Quando você escolhe JavaScript, o Vite configura o projeto com as configurações padrão de JavaScript. Por outro lado, ao escolher TypeScript, o Vite configura o projeto com as configurações de TypeScript, incluindo a geração de um arquivo `tsconfig.json`.

## Compilando o projeto

Antes de fazer o upload para produção, gere os artefatos de produção usando o build do Vite:

```bash theme={null}
npm run build
```

Para servir a versão de produção localmente (útil para testar no ambiente de deploy), recomendamos usar o comando `vite preview` expondo a aplicação em todas as interfaces e na porta 80:

```bash theme={null}
npx vite preview --host 0.0.0.0 --port 80
```

Você pode também adicionar um script no `package.json` para simplificar:

```json theme={null}
{
	"scripts": {
		"build": "vite build",
		"preview": "vite preview --host 0.0.0.0 --port 80"
	}
}
```

Observação: em alguns ambientes a porta 80 exige privilégios especiais. Se houver restrição, use outra porta (ex.: 8080) e mapeie no host/serviço.

## Escolhendo um servidor de produção

Para produção você tem basicamente duas opções:

* Com nosso runtime estático HTML/CSS, apenas renomeie `index.html` para `vite.html`.
* Usar o próprio `vite preview` (útil para testar o comportamento de produção ou em containers que executam o processo Node diretamente).

### Runtime HTML/CSS

Se optar pelo runtime estático, gere o build (`npm run build`) e copie o conteúdo de `dist/` para o arquivo compactado zip que será enviado para a Square Cloud.
Lembre-se de renomear `index.html` para `vite.html` para que o runtime reconheça o arquivo inicial corretamente como uma aplicação Vite e faça o tratamento adequado dos assets.

### Usando `vite preview` em produção (ou em containers)

`vite preview` serve os arquivos gerados por `vite build` com comportamento parecido com um servidor estático de produção. Para expor a aplicação para a rede (por exemplo, dentro de um container na Square Cloud) use:

```bash theme={null}
npx vite preview --host 0.0.0.0 --port 80
```

Isso faz o processo escutar em todas as interfaces (`0.0.0.0`) e na porta 80.

### Exemplo de `vite.config.js` com opções de `preview`

```js theme={null}
import { defineConfig } from 'vite'

export default defineConfig({
	preview: {
		host: '0.0.0.0',
		port: 80,
		strictPort: true
	}
})

```

## Deploying

Após preparar os arquivos do seu projeto, você pode enviá-los para a Square Cloud e hospedar seu projeto.
Para fazer isso, crie um arquivo ZIP contendo todos os arquivos do seu projeto.

<PortNote lang="pt-br" />

### Via dashboard

<Steps>
  <Step title="Acesse a página de upload">
    Acesse a [página de upload](https://squarecloud.app/pt-br/dashboard/new) e envie seu arquivo zip.
  </Step>

  <Step title="Configure seu ambiente">
    Após fazer o upload do seu arquivo zip, você precisará configurar o nome, o arquivo principal ou o ambiente de execução e outras configurações do seu projeto.\
    Se você estiver enviando um projeto web, certifique-se de selecionar "Publicação na Web" e definir um subdomínio para o seu projeto.
  </Step>

  <Step title="Faça o deploy do projeto">
    Por fim, clique no botão "Deploy" para hospedar seu projeto no Square Cloud.
    Após o deploy, você poderá monitorar o status e os registros do seu projeto no painel.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/dashboard/uploading-pt-br.gif" alt="Enviando aplicação para a Square Cloud" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Step>
</Steps>

### Via CLI

Para usar esse método, você precisa criar um arquivo de configuração chamado `squarecloud.app` no diretório raiz do seu projeto. Esse arquivo conterá a configuração necessária para o seu projeto.

<Card title="Saiba mais sobre: Como criar arquivo de configuração da Square Cloud." icon="link" href="/pt-br/getting-started/config-file">
  O arquivo squarecloud.app é um arquivo de configuração que será usado para configurar seu aplicativo; ele será usado para definir seu ambiente.
</Card>

<Steps>
  <Step title="Primeiro Passo">
    Primeiro, você precisa ter a CLI instalada em seu ambiente. Se você ainda não a possui, execute o seguinte comando em seu terminal:

    ```
    npm install -g @squarecloud/cli
    ```

    Se você já a possui, recomendamos atualizá-la. Para fazer isso, execute o seguinte comando em seu terminal:

    <Tabs>
      <Tab title="Windows">
        ```bash theme={null}
        squarecloud update
        ```
      </Tab>

      <Tab title="Linux, macOS, e WSL">
        ```bash theme={null}
        curl -fsSL https://cli.squarecloud.app/install | bash
        ```
      </Tab>
    </Tabs>
  </Step>

  <Step title="Segundo Passo">
    Agora, para autenticar e usar outros comandos da CLI, você encontrará sua chave de autorização [aqui](https://squarecloud.app/pt-br/account/security) clicando em "Solicitar Chave da API". Após obter sua chave de autorização, execute o seguinte comando:

    ```bash theme={null}
    squarecloud auth login
    ```
  </Step>

  <Step title="Terceiro Passo">
    Finalmente, para fazer o deploy da sua aplicação para a Square Cloud usando a CLI, você precisa executar o seguinte comando:

    ```bash theme={null}
    squarecloud upload
    ```

    Ou se já possui o zip criado:

    ```bash theme={null}
    squarecloud upload --file <caminho/para/zip>
    ```
  </Step>
</Steps>

## Recursos Adicionais

Para mais informações sobre o Vite e suas ferramentas, visite a [documentação oficial do Vite](https://vitejs.dev/guide/). Lá, você encontrará guias detalhados, tutoriais e documentação da API para ajudá-lo a tirar o máximo proveito do Vite.

## Solução de Problemas

<CardGroup cols={1}>
  ### Domínio Personalizado

  <Card horizontal>
    Para usar domínio personalizado (ex: `meusite.com`) ao invés da URL padrão `meusite.squareweb.app`, você precisa do **plano Standard ou superior**. O subdomínio é definido pelo campo **SUBDOMAIN** no arquivo de configuração. Veja: [Como configurar seu domínio personalizado](https://docs.squarecloud.app/pt-br/tutorials/platform/custom-domain).
  </Card>

  ### Requisitos Mínimos de RAM

  <Card horizontal>
    **Mínimo: 512MB de RAM** para websites/APIs simples. Para sites com frameworks (Next.JS, React, Vue, Angular, etc.), sugerimos sempre **pelo menos 1GB de RAM**. Para aplicações maiores, aumente a RAM para evitar que a aplicação fique sem memória e trave.
  </Card>

  ### Não foi possível encontrar esse site.

  <Card horizontal>
    Verifique se o **subdomínio/domínio** corresponde ao configurado no campo **SUBDOMAIN** ou nas **configurações de domínio personalizado**. Se você acabou de enviar o site, aguarde até **60 segundos** para a Square liberar o **primeiro acesso**.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/cloudflare/pt-br/unauthorized.webp" alt="Erro de site não encontrado no Cloudflare" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Card>

  ### Site demorou demais para responder...

  <Card horizontal>
    Verifique se configurou corretamente a **porta 80** e **host 0.0.0.0** na aplicação. Recomendamos usar as variáveis de ambiente forçadas da Square: **PORT** e **HOST** do arquivo `.env`.

    <Frame>
      <img src="https://cdn.squarecloud.app/docs/articles/cloudflare/pt-br/timeout.webp" alt="Erro de timeout no Cloudflare" style={{ borderRadius: "0.2rem" }} />
    </Frame>
  </Card>
</CardGroup>

## Contate-nos

Se você continuar enfrentando **dificuldades técnicas**, nossa **equipe de suporte especializada** está disponível para auxiliá-lo. [**Entre em contato conosco**](https://squarecloud.app/pt-br/support) e teremos prazer em ajudá-lo a resolver qualquer questão.
