Pular para o texto
Entrar Testar grátis

Segredos do app na produção

Chaves de API e senhas de que o app precisa na produção entram com nimu segredo definir. O app lê cada uma como variável de ambiente, só no servidor. O valor nunca fica no código, na imagem nem na tela.

Atualizado em 9 de outubro de 2026

Definir um segredo

No terminal da Sandbox, diga o app e o nome da variável. O valor é pedido em seguida, sem aparecer na tela:

$ nimu segredo definir w4n8t3hd STRIPE_SECRET_KEY
Valor de STRIPE_SECRET_KEY (não aparece na tela; Enter para terminar):
Segredo STRIPE_SECRET_KEY do app w4n8t3hd a caminho da produção (na fila): o valor saiu cifrado para a Nimu e não aparece em lugar nenhum. Com o app no ar, a produção reinicia o app em cerca de 1 min, já com o valor novo (não precisa publicar de novo).

Um segredo novo vale na hora: com o app no ar, ele reinicia em cerca de 1 minuto, já com a variável. Não precisa publicar de novo.

Num app novo, defina os segredos antes do primeiro nimu deploy, para ele já subir com o que precisa. O primeiro segredo da conta pode criar a máquina de produção, e a resposta avisa.

Enviar o valor por pipe

O valor nunca vai como argumento do comando, porque ficaria no histórico do terminal. Num script, mande pela entrada:

$ printf %s "$VALOR" | nimu segredo definir w4n8t3hd STRIPE_SECRET_KEY

Pelo agente

O melhor é você mesmo rodar o comando no terminal. Se passar o valor ao agente, ele usa a ferramenta nimu_definir_segredo e é instruído a não repetir o valor em lugar nenhum.

Ver os nomes

$ nimu segredos w4n8t3hd
Segredos de w4n8t3hd (só os nomes; os valores nunca saem da produção):
  STRIPE_SECRET_KEY  (atualizado 2026-10-08 14:02)

Ninguém lê um valor depois de definido: nem você, nem o agente, nem o painel. Se você perdeu o valor, defina de novo.

Trocar ou remover

Trocar o valor de um segredo que já existe é o mesmo comando de definir. Remover tem o seu:

$ nimu segredo remover w4n8t3hd STRIPE_SECRET_KEY
Pedido enviado: confirme no painel em https://nimucloud.com/painel/#/confirmar/1. Até lá, os segredos do app ficam como estão; o pedido vale por 2 h.

As duas ações esperam a sua confirmação no painel, em Seu agente pediu, porque o valor de antes se perde. O pedido vale por 2 horas. Depois de confirmado, o app reinicia em cerca de 1 minuto.

Regras do nome e do valor

O nome
É o de uma variável de ambiente: letras sem acento, números e _, sem começar por número, com até 64 caracteres. Por exemplo, STRIPE_SECRET_KEY.
Nomes recusados
Os que começam com VITE_, NEXT_PUBLIC_, REACT_APP_, NUXT_PUBLIC_, PUBLIC_, EXPO_PUBLIC_ ou GATSBY_. Variáveis assim vão para o código do navegador, e quem abre o app lê.
Nome reservado
DATABASE_URL, enquanto o app tem banco. Quem define é a Nimu.
O valor
Uma linha só, com até 32 KB.
Quantos
Até 100 segredos por app.

Um valor de várias linhas, como uma chave PEM ou o JSON de uma conta de serviço, vai em base64 numa linha, e o app decodifica ao subir:

$ base64 -w0 chave.pem | nimu segredo definir w4n8t3hd CHAVE_PEM

Onde o segredo nunca vai

  • No código e no Dockerfile.
  • Num .env que vá para a imagem. O .dockerignore que o nimu iniciar escreve deixa .env, chaves e credenciais de fora, em qualquer pasta.
  • Em variáveis VITE_, NEXT_PUBLIC_ ou outra que vá para o navegador.

Duas travas conferem isso. O nimu deploy recusa construir a imagem que levaria um arquivo com segredo. E a checagem de segurança da produção bloqueia a versão em que acha um segredo no código. Se isso acontecer, troque a chave que vazou, além de tirar do código.

Na Sandbox, para desenvolver, o .env do projeto serve. Ele só não pode ir para o git nem para a imagem.

Como o valor chega à produção

O nimu cifra o valor dentro da Sandbox, com uma chave pública da Nimu que já vem gravada na máquina. O arquivo cifrado é buscado uma vez pela Nimu, que leva o valor à máquina de produção. Ele não passa pelo painel.

O painel e o nimu segredos conhecem só os nomes. Nos logs do app, os valores saem escondidos.

No site: Publicar. Nesta documentação: Produção e Banco de dados.