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

# O Arquivo sonder.config

> Configure seu app declarativamente, direto de dentro do .zip

## O que é

`sonder.config` é um arquivo de texto simples que você pode incluir na **raiz** do `.zip` enviado para [`POST /v1/apps/upload`](https://docs.sondercloud.app/api-reference/endpoint/apps/upload). Ele permite configurar o app **sem precisar preencher campos no formulário** — ideal para quem versiona a configuração junto com o código (CI/CD, scripts de deploy, etc.).

> [!NOTE]
>
> Campos enviados explicitamente no formulário de upload (`appName`, `language`, `command`, `memory`, `domain`) **sempre têm prioridade** sobre o que estiver no `sonder.config`. Use o arquivo como um valor padrão versionado, e o formulário para overrides pontuais.

## Formato

Texto plano, uma chave por linha, no formato `CHAVE=valor`. Linhas vazias e linhas iniciadas com `#` são ignoradas (comentários).

```bash sonder.config theme={null}
# Configuração do meu app na SonderCloud
NAME=minha-api
LANGUAGE=python
COMMAND=uvicorn main:app --host 0.0.0.0 --port 8080
MEMORY=256
DOMAIN=minha-api
```

## Chaves suportadas

**NAME** `string`

Nome do app.

**LANGUAGE** `string`

Linguagem/runtime do app. Veja a tabela completa abaixo.

**COMMAND** `string`

Comando usado para iniciar o app dentro do container.

**MEMORY** `string`

Memória alocada, em MB.

**DOMAIN** `string`

Subdomínio desejado.

> [!WARNING]
>
> Qualquer outra chave é ignorada silenciosamente. Não há campo `TYPE` reconhecido neste parser — o tipo do app é definido pelo `domain` informado (se houver domínio, o app é tratado como aplicação web).

## Linguagens suportadas

Internamente, o valor de `LANGUAGE` só importa para decidir **qual Dockerfile especializado** vai ser usado no build. As linguagens abaixo têm um builder dedicado:

| `LANGUAGE` | Runtime |
| - | - |
| `python` | Python |
| `ruby` | Ruby |
| `java` | Java |
| `php` | PHP |
| `go` | Go |
| `rust` | Rust |
| `static` | Site estático (HTML/CSS/JS puro) |

> [!NOTE]
>
> **Qualquer outro valor** (incluindo `js`, `node`, `nodejs`, vazio, ou não informado) faz o app ser construído com o builder **Node.js**, que é o padrão da plataforma. Se seu projeto é Node.js, `LANGUAGE=js` funciona, mas também funcionaria omitir a chave.

## Exemplo completo — API em Node.js

```bash sonder.config theme={null}
NAME=minha-api-node
LANGUAGE=js
COMMAND=node index.js
MEMORY=256
DOMAIN=minha-api-node
```

## Exemplo completo — Bot em Python (sem domínio)

Bots e workers que não expõem uma porta HTTP não precisam de `DOMAIN`:

```bash sonder.config theme={null}
NAME=meu-bot-discord
LANGUAGE=python
COMMAND=python bot.py
MEMORY=128
```


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.