> ## 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 criar seu arquivo de configuração squarecloud.app

> Aprenda como criar seu arquivo de configuração da Square Cloud

## O que é o arquivo de configuração?

O arquivo de configuração é um arquivo que contém os parâmetros da sua aplicação, como o arquivo principal, memória, versão e outros parâmetros. Esse arquivo é usado para configurar e implantar sua aplicação na plataforma Square Cloud.

```systemd squarecloud.app theme={null}
MAIN=arquivo_principal.js
DISPLAY_NAME=Eu sou o tal arquivo de configuração
MEMORY=512
VERSION=recommended
```

## Criando o arquivo de configuração

É muito simples criar o arquivo de configuração: basta criar um arquivo com o nome `squarecloud.app` ou `squarecloud.config` e colocar os parâmetros de configuração dentro dele.

<Steps>
  <Step title="Selecionar extensão">
    O arquivo de configuração pode ter duas extensões: **.app** ou **.config**. Na prática, pode ser: `squarecloud.app` ou `squarecloud.config` e você pode escolher o que preferir. Dica: use **.app** para ajudar a promover a Square Cloud. 🥰😂
    <Info>No **macOS**, recomendamos usar a extensão **.config**.</Info>
    <Warning>Observação: **.app** ou **.config** é a **extensão do arquivo**, **não o nome**.</Warning>
  </Step>

  <Step title="Criar arquivo">
    Crie um arquivo com a extensão selecionada e coloque os parâmetros de configuração dentro dele.
  </Step>
</Steps>

## Parâmetros de configuração

Abaixo você pode ver todos os parâmetros de configuração disponíveis para seu arquivo de configuração.

| Parâmetro       | Tipo    | Editável | Limite          | Uso                                                                       |
| --------------- | ------- | :------: | --------------- | ------------------------------------------------------------------------- |
| `MAIN*`         | String  |     ❌    | 32 caracteres.  | Define o arquivo principal da aplicação. Ex.: `index.js`, `main.py`, etc. |
| `VERSION*`      | String  |     ❌    | -               | Versão da linguagem (Ex.: `recommended`).                                 |
| `MEMORY*`       | Integer |     ✅    | -               | Quantidade de memória em megabytes.                                       |
| `DISPLAY_NAME*` | String  |     ✅    | 32 caracteres.  | Nome de exibição da aplicação.                                            |
| `RUNTIME`       | String  |     ❌    | -               | O ambiente de execução. Ex.: `typescript`, `nodejs`, `go`.                |
| `DESCRIPTION`   | String  |     ✅    | 280 caracteres. | Descrição/metadados da aplicação.                                         |
| `AUTORESTART`   | Boolean |     ✅    | -               | Reinício automático (`true` ou `false`).                                  |
| `START`         | String  |     ✅    | 256 caracteres. | Comando personalizado de inicialização.                                   |
| `SUBDOMAIN`     | String  |     ✅    | 63 caracteres.  | Subdomínio do website. (caso aplicável)                                   |

<Info>Parâmetros editáveis (✅) podem ser modificados no painel após deploy. Não editáveis (❌) requerem reenvio completo da aplicação para alterações.</Info>

## Detalhando os parâmetros de configuração

Abaixo você pode ver os parâmetros de configuração que pode usar no seu arquivo de configuração.

<Steps>
  <Step title="MAIN [*]" icon="file">
    **Tipo**: String | **Editável**: ❌ | **Limite**: 32 caracteres.

    Define o arquivo principal da sua aplicação.

    ```systemd Exemplo: theme={null}
    MAIN=index.js
    ```

    ```systemd Também suporta diretórios: theme={null}
    MAIN=src/loaders/index.js
    ```

    <Info>Quando este parâmetro é definido, o ambiente de execução é inferido baseado na extensão do arquivo</Info>
    <Tip>Esta configuração é **IGNORADA** se você usar o parâmetro START.</Tip>
  </Step>

  <Step title="MEMORY [*]" icon="memory">
    **Tipo**: Integer | **Editável**: ✅ | **Limite**: Mínimo 256MB (bot), 512MB (site).

    Define a quantidade de memória que sua aplicação usará.

    ```systemd theme={null}
    MEMORY=256
    ```

    <Info>O valor deve ser especificado em megabytes (MB).</Info>
  </Step>

  <Step title="VERSION [*]" icon="arrow-up-9-1">
    **Tipo**: String | **Editável**: ❌ | **Valores**: `recommended`, `latest` ou versão específica.
    <Tip>Recomendamos usar `recommended` para melhor estabilidade.</Tip>

    Define a versão da linguagem da sua aplicação.

    ```systemd theme={null}
    VERSION=recommended
    ```

    | Linguagem          | `recommended` | `latest` |
    | ------------------ | ------------- | -------- |
    | Node.js \[JS & TS] | 24.15.0       | 26.1.0   |
    | Python             | 3.13.13       | 3.14.5   |
    | Java               | JDK 25        | JDK 25   |
    | Elixir             | 1.19.5        | 1.19.5   |
    | Rust               | 1.95.0        | 1.95.0   |
    | Ruby               | 4.0.4         | 4.0.4    |
    | PHP                | 8.5.6         | 8.5.6    |
    | Go                 | 1.26.3        | 1.26.3   |
    | .NET/C#            | 10.0.8        | 10.0.8   |
  </Step>

  <Step title="DISPLAY_NAME [*]" icon="text">
    **Tipo**: String | **Editável**: ✅ | **Limite**: 32 caracteres.

    Define o nome de exibição da sua aplicação.

    ```systemd theme={null}
    DISPLAY_NAME=Admin BOT
    ```
  </Step>

  <Step title="DESCRIPTION" icon="text">
    **Tipo**: String | **Editável**: ✅ | **Limite**: 280 caracteres.

    Define a descrição da sua aplicação.

    ```systemd theme={null}
    DESCRIPTION=This bot is designed to help you with your daily tasks.
    ```
  </Step>

  <Step title="AUTORESTART" icon="rotate">
    **Tipo**: Boolean | **Editável**: ✅ | **Valores**: `true`, `false` | **Padrão**: `false`

    Define se a aplicação deve reiniciar automaticamente em caso de falha.

    ```systemd theme={null}
    AUTORESTART=true
    ```
  </Step>

  <Step title="SUBDOMAIN" icon="globe">
    **Tipo**: String | **Editável**: ✅ | **Limite**: 63 caracteres. | **Padrão**: `não definido`.

    Define o subdomínio do seu site (apenas para aplicações web).

    ```systemd theme={null}
    SUBDOMAIN=mysite
    ```

    <Note>O URL final será: mysite.squareweb.app</Note>
  </Step>

  <Step title="RUNTIME" icon="server">
    **Tipo**: String | **Editável**: ❌

    Define o ambiente de execução manualmente.

    ```systemd theme={null}
    RUNTIME=nodejs
    ```

    Veja os valores aceitos abaixo.

    | Ambiente   | RUNTIME                  |
    | ---------- | ------------------------ |
    | Nodejs     | `nodejs`, `javascript`   |
    | TypeScript | `typescript`             |
    | Python     | `python`                 |
    | C#/Dotnet  | `c#`, `dotnet`, `csharp` |
    | Elixir     | `Elixir`                 |
    | Java       | `java`                   |
    | Rust       | `Rust`                   |
    | PHP        | `php`                    |
    | Golang     | `go`, `golang`           |
    | HTML/CSS   | `static`, `html`         |

    <Warning>Se definir este parâmetro, não é necessário definir o MAIN, Ao invés disso, precisa definir um comando START personalizado.</Warning>
  </Step>

  <Step title="START" icon="play">
    **Tipo**: String | **Editável**: ✅ | **Limite**: 256 caracteres. | **Padrão**: `não definido`.

    Define um comando personalizado de inicialização.

    ```systemd theme={null}
    START=npm run start
    ```

    <Warning>Este parâmetro **substitui** o comportamento padrão do MAIN.</Warning>
  </Step>
</Steps>

## Exemplos de configuração para bots

Temos alguns exemplos de configurações para bots; abaixo você pode ver alguns exemplos.

```systemd Parâmetros obrigatórios. theme={null}
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
```

```systemd Exemplo com todos os parâmetros. theme={null}
MAIN=index.js
MEMORY=512
VERSION=recommended
DISPLAY_NAME=Robin bot
DESCRIPTION=Este bot foi criado para ajudar em suas tarefas diárias.
START=npm run start
AUTORESTART=true
```

## Exemplos de configuração para sites

Temos alguns exemplos de configurações para sites; abaixo você pode ver alguns exemplos.

<Info>O URL do site será: mysite.squareweb.app</Info>

```systemd Exemplo com todos os parâmetros. theme={null}
MAIN=index.js
MEMORY=1024
VERSION=recommended
DISPLAY_NAME=Meu site
DESCRIPTION=Meu site é muito legal!
SUBDOMAIN=mysite
START=npm run build && npm run start
AUTORESTART=true
```

<Info>MAIN `next.config.js` usado apenas para o sistema reconhecer o projeto como um projeto JavaScript ou TypeScript (outro arquivo .ts/.tsx)</Info>

```systemd Exemplo de site Next.js. theme={null}
MAIN=next.config.js
MEMORY=2048
VERSION=recommended
DISPLAY_NAME=Site Next.js
DESCRIPTION=Este site foi construído com Next.js.
SUBDOMAIN=nextjs
START=npm run build && npm run start
AUTORESTART=true
```
