Infisical no meu servidor: as credenciais num lugar só e fora do chat do agente
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.

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.cmdou o.exedentro denode_modules. - Quando uma credencial também fica no
.envmontado 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.
- harness-ia
- seguranca
- infraestrutura