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

# Variáveis de ambiente

> Guarde tokens, senhas e configurações fora do código. Os valores ficam cifrados e chegam ao processo quando ele inicia.

Variáveis de ambiente são pares de nome e valor que o seu projeto lê quando inicia, como o `TOKEN` do bot ou a URL de um banco. Elas valem em **todos os planos**, inclusive no Free.

<CodeGroup>
  ```js Node.js theme={"dark"}
  const token = process.env.TOKEN;
  ```

  ```python Python theme={"dark"}
  import os

  token = os.environ["TOKEN"]
  ```
</CodeGroup>

## Pelo painel

Abra o projeto e vá em **Configurações** › **Variáveis de ambiente**.

* **Adicionar:** escreva o nome e o valor e salve.
* **Importar .env:** cole o conteúdo de um arquivo `.env`. Linhas com `#` são comentários e ficam de fora. Escolha entre **Mesclar** com as que já existem ou **Substituir todas**.
* **Trocar um valor:** digite o novo valor na variável e salve. O valor antigo nunca aparece.

Depois de salvar, o painel avisa que o projeto recebe as variáveis **no próximo início** e oferece **Reiniciar agora**.

## Pela API

Use [Listar variáveis](/api-reference/projects/list-variables) e [Definir variáveis](/api-reference/projects/set-variables) com uma chave de leitura e escrita.

## Regras

| Regra      | Limite                                                                                         |
| ---------- | ---------------------------------------------------------------------------------------------- |
| Quantidade | Até 50 variáveis por projeto                                                                   |
| Nome       | Letras, números e `_`, começando com letra ou `_`, até 64 caracteres (`TOKEN`, `DATABASE_URL`) |
| Valor      | Até 4.096 caracteres, **numa linha só**                                                        |
| Total      | Nomes e valores somados até 32 KB                                                              |
| Reservados | `HOME`, `PATH` e qualquer nome que comece com `CUBE_`. Em sites, `PORT` também                 |

<Tip>
  Precisa de um valor com várias linhas, como uma chave privada? Guarde em base64 e decodifique no código.
</Tip>

## O que já vem definido

| Variável           | Valor                                            | Pode trocar? |
| ------------------ | ------------------------------------------------ | ------------ |
| `NODE_ENV`         | `production` (Node.js)                           | Sim          |
| `PYTHONUNBUFFERED` | `1` (Python: o `print` aparece nos logs na hora) | Sim          |
| `PORT`             | A porta do site (só em sites)                    | Não          |
| `HOME`             | `/tmp`                                           | Não          |

## Segurança

<Columns cols={2}>
  <Card title="Cifradas" icon="lock">
    Os valores ficam guardados cifrados. Depois de salvos, nunca voltam: nem no painel, nem na API, nem para Cube AI.
  </Card>

  <Card title="Fora da instalação" icon="package-x">
    As variáveis chegam só ao seu app, quando ele inicia. A instalação das dependências e o build não enxergam os valores, então um pacote malicioso não lê o seu token.
  </Card>
</Columns>

<Warning>
  Por não chegarem ao build, variáveis que o framework embute durante o build (como as `NEXT_PUBLIC_…` do Next.js) ficam vazias. Veja a dica em [Sites e APIs](/hosting/sites-and-apis).
</Warning>

A lista de [Atividade](https://app.cubehosting.com.br/activity) registra quem mudou as variáveis e quando, só com os **nomes**, nunca com os valores.
