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_ouGATSBY_. 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
.envque vá para a imagem. O .dockerignore que onimu iniciarescreve 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.