Infisical no meu servidor: as credenciais num lugar só e fora do chat do agente

2 de novembro de 2026 · 6 min de leitura

Desde 10 de setembro de 2026 as credenciais do servidor onde rodo meus projetos ficam no Infisical Cloud: senhas de administração, tokens de API, strings de conexão de banco. Em 2 de novembro, contando só os nomes das chaves, eram 21 no projeto do servidor e 9 no de um dos apps.

Antes elas ficavam em arquivos .env de cada stack e numa cópia local em texto, que mantive por um tempo durante a migração. Apaguei essa cópia em 25 de outubro. Desde então, o servidor e o app que migrei buscam as credenciais no Infisical.

infisical-credenciais-num-lugar-so-capa

O Infisical é uma plataforma de gestão de segredos com código aberto (repositório no GitHub). Dá para usar a versão em nuvem, o Infisical Cloud, ou hospedar a sua própria instância.

O que o plano Free cobre

Uso o Infisical Cloud no plano Free. Pela página de preços, lida em 2 de novembro de 2026, ele inclui:

  • 5 identidades e projetos ilimitados;
  • 3 ambientes por projeto e 10 Secret Syncs;
  • mais de 100 integrações;
  • pastas, referências, imports e overrides de segredos;
  • compartilhamento de segredo, webhooks e o Infisical Agent;
  • autenticação em dois fatores.

Ficam para os planos pagos, entre outros: versionamento de segredos, recuperação para um ponto no tempo, rotação automática, controle de acesso avançado, SSO por SAML e retenção de log de auditoria. O Pro custa US$ 20 por identidade por mês (cobrança anual) e tem 14 dias de teste.

O meu uso cabe no Free: são dois projetos e duas identidades de máquina, uma por projeto, e só preciso do ambiente de produção.

O que mais dá para guardar no Infisical

Uso só os segredos de valor fixo: senha, token, string de conexão. Dentro da gestão de segredos ainda existem a sincronização com outros serviços (os Secret Syncs do Free), a rotação automática (a partir do Pro, para bancos públicos) e as credenciais dinâmicas de vida curta (a partir do Advanced).

Fora dela, o painel da minha organização mostra mais cinco produtos na mesma conta:

  • Certificate Manager: emite, renova e controla certificados X.509 para TLS, mTLS, assinatura de código e identidade de dispositivo.
  • KMS: gera e guarda chaves criptográficas, e usa essas chaves para cifrar, decifrar, assinar e verificar.
  • Secret Scanning: varre repositórios, builds e artefatos em execução atrás de segredo vazado e de configuração errada.
  • Privileged Access Manager: dá acesso a bancos e servidores por uma sessão intermediada, com gravação da sessão e guarda das credenciais das contas.
  • Agent Vault, ainda em preview: dá a agentes de IA o acesso, o contexto e as permissões de que precisam para trabalhar, onde quer que rodem.

Não testei nenhum dos cinco, e na minha conta todos estão com contagem zero. Pela página de preços, o Secret Scanning é um add-on pago. Para os outros quatro, a página não diz em que plano entram.

Nuvem ou self-hosted

O Infisical também roda na sua infraestrutura. A documentação de self-hosting oferece container Docker único, Docker Compose (Infisical, PostgreSQL e Redis num template só), Helm chart para Kubernetes, pacote Linux sem container e receitas para AWS e GCP. Os motivos que a própria documentação dá para hospedar são compliance (os dados ficam sob o seu controle) e liberdade de topologia, inclusive em rede isolada.

O código fora das pastas ee/ é MIT. Recursos de Enterprise, como SSO e gateways, pedem licença também na instância própria.

O Docker Compose pede no mínimo 2 núcleos, 4 GB de RAM e 20 GB de disco (recomendado: 4 núcleos e 8 GB), e a documentação avisa que essa configuração serve para prova de conceito, sem alta disponibilidade. Todos os segredos cifrados ficam no volume do PostgreSQL, então o backup dele passa a ser responsabilidade sua.

Escolhi a nuvem. Meu servidor tem 2 núcleos e 7,8 GB de RAM, e já roda um agente, um gateway de modelos e os apps. Somar os containers do Infisical ao que já está lá, e ainda cuidar do backup do cofre, não compensava para dois projetos que cabem no plano gratuito.

Um projeto por app

O padrão é um projeto por app no Infisical, em vez de um projeto único com pastas. Cada projeto tem uma identidade de máquina (login por Universal Auth) que só lê o ambiente de produção. Testei o isolamento: logando com a identidade de um app, a listagem mostra só o projeto dele. Se um token vazar, ele não abre o cofre dos outros.

Buscar na hora de usar

É a parte que mais uso. O script que roda um comando como administrador no servidor faz login, pega a senha numa variável e passa direto para o sudo, sem imprimir:

TOKEN=$(infisical login --method=universal-auth \
  --client-id="$CLIENT_ID" --client-secret="$CLIENT_SECRET" --plain --silent)
SENHA=$(infisical secrets get DEPLOY_SUDO_PASSWORD --plain --silent \
  --token="$TOKEN" --projectId="$PROJECT_ID" --env=prod)

O login é em dois passos porque o infisical run não lê o client-id e o client-secret direto do ambiente. Primeiro pego o token, depois uso.

Nos containers o padrão é o mesmo, no entrypoint: exec infisical run --projectId=... --env=prod -- "$@". O processo sobe com as variáveis já no ambiente, e o código da aplicação continua lendo process.env como antes.

O agente trabalha com o nome da chave

Uso o Claude Code para manter o servidor, e o desenho evita que o valor chegue à conversa. No repositório do servidor fica só a lista com os nomes das chaves, sem valor, e o CLAUDE.md tem a regra: quando precisar de um valor, --plain numa variável. O agente roda o script de administração e a senha não aparece na conversa.

Um hook do Claude Code impede o agente de ler o arquivo com as credenciais de acesso ao Infisical e as chaves SSH. Um script no pré-commit barra commit com arquivo de credencial, chave privada, token de provedor ou URL de banco com senha.

Antes do Infisical, a cópia em texto chegou a aparecer no chat do agente mais de uma vez. Foi um dos motivos para apagá-la.

Trocar uma credencial num lugar só

Para rotacionar, atualizo o valor no Infisical e reinicio o serviço que usa. Tenho um checklist curto para isso no repositório. Em 25 de outubro troquei assim as senhas de administração do servidor, a senha de um banco e as credenciais de dois serviços.

Pegadinhas

  • No Git Bash do Windows, o wrapper do npm para a CLI não executa. Uso o infisical.cmd ou o .exe dentro de node_modules.
  • Quando uma credencial também fica no .env montado num container, a troca é feita nos dois lugares, à mão.
  • A identidade de um projeto não cria projeto novo: recebe 403. Por isso as credenciais de um dos apps ainda estão nas variáveis do painel de deploy, esperando eu ajustar a permissão.
  • As credenciais de acesso ao próprio Infisical ficam em disco, num arquivo ignorado pelo git. Alguém precisa abrir o cofre, e esse arquivo é a única coisa que guardo fora dele de propósito, junto com as chaves SSH.