> ## 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 fazer deploy do n8n na Square Cloud

> Este tutorial irá guiá-lo para criar e fazer deploy da sua aplicação n8n na Square Cloud.

## Introdução

* Este artigo guia você na criação e hospedagem de uma aplicação n8n na Square Cloud.
* Antes de começar, certifique-se de ter uma conta na Square Cloud, que pode ser criada através da página de cadastro. Você pode usar seu e-mail para criar uma conta.
* Por fim, você precisa ter um plano pago ativo com pelo menos 4GB de RAM na sua conta. Você pode visualizar nossos planos e adquirir um de acordo com suas necessidades [aqui](https://squarecloud.app/pt-br/pricing).

## Criando o Projeto

* Primeiramente, precisamos de um ambiente JavaScript. Para isso, precisamos de um package.json.
* O package.json deve conter no campo dependencies o n8n e deve ter os scripts para iniciá-lo. Aqui está o exemplo:

```json package.json theme={null}
{
  "name": "squarecloud-n8n",
  "version": "1.0.0",
  "main": "index.js",
  "type": "module",
  "scripts": {
    "start": "n8n"
  },
  "author": "Square Cloud Education <squarecloud.app>",
  "license": "ISC",
  "dependencies": {
    "n8n": "latest"
  }
}
```

<Info>
  Já temos tudo pronto para deploy em nosso repositório [aqui](https://github.com/squarecloud-education/n8n-web/releases). Você só precisa baixar o `project.zip` e enviá-lo.
</Info>

## 📁 Arquivos Necessários

Os seguintes arquivos são necessários no seu zip:

* package.json
* .env (opcional)

## ⚙️ Arquivo de Configuração

* Você precisa configurar o ambiente de execução para `Detectar manualmente` e defini-lo como `NodeJS`. Em um squarecloud.config ou squarecloud.app ficará assim:

```systemd squarecloud theme={null}
DISPLAY_NAME=Nome do App
RUNTIME=nodejs
START=npm run start
MEMORY=3072
VERSION=recommended
SUBDOMAIN=my-n8n-subdomain
```

* Em seguida, precisamos definir 2 variáveis de ambiente, `N8N_HOST` e `N8N_PORT` em um arquivo `.env` ou no ambiente da Square Cloud no menu de upload. Seus valores devem ser `0.0.0.0` e `80`.

```systemd .env theme={null}
N8N_HOST=0.0.0.0
N8N_PORT=80
```

## Enviando o Projeto para a Square Cloud

Depois de preparar os arquivos do seu projeto, você pode enviá-los para a Square Cloud e hospedar seu projeto.

<Tabs>
  <Tab title="Upload via Dashboard">
    Acesse o [Dashboard da Square Cloud](https://squarecloud.app/pt-br/dashboard/new) e envie os arquivos do seu projeto.

    <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>
  </Tab>

  <Tab title="Upload via CLI">
    <Steps>
      <Step title="Primeiro Passo">
        Primeiro, você precisa ter o CLI instalado no seu ambiente. Se ainda não tiver, execute o seguinte comando no seu terminal:

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

        Se você já tiver, recomendamos atualizá-lo. Para isso, execute o seguinte comando no 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 do CLI, você encontrará sua chave de autorização [aqui](https://squarecloud.app/pt-br/account/security) clicando em "Solicitar Chave de API". Após obter sua chave de autorização, execute o seguinte comando:

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

      <Step title="Terceiro Passo">
        Por fim, para fazer deploy da sua aplicação na Square Cloud usando o CLI, você precisa executar o seguinte comando, passando o caminho para o seu arquivo zip:

        ```bash theme={null}
        squarecloud upload zip
        ```
      </Step>
    </Steps>
  </Tab>
</Tabs>
