Índice do diárioDockup / nota de campo
Note / claude-code-production-deployment

Deploy do Claude Code: guia de produção

Deploy do Claude Code com Dockup: instale a skill do agente, autentique-se com segurança, faça o deploy a partir do Git, verifique o sucesso e opere em produção com segurança.

O deploy do Claude Code só se torna confiável quando o agente consegue distinguir entre “solicitação aceita” e “produção saudável”. O Dockup fornece essa camada de deploy por meio de uma CLI projetada para chamadas de máquina: JSON estruturado, códigos de saída reais do processo e um modo --wait que permanece conectado até o deploy atingir um estado terminal.

Este guia leva um repositório do trabalho local até uma release de produção verificada. Ele também define as permissões que o Claude Code deve receber, as evidências que deve retornar e o ponto em que uma pessoa precisa aprovar uma ação destrutiva.

O que o deploy do Claude Code precisa antes da produção?

Um agente de programação não deve começar tentando adivinhar o nome de um serviço ou navegando por um dashboard. Dê a ele um contrato operacional restrito: descobrir o destino exato, fazer uma única alteração pretendida, aguardar o resultado e comunicar evidências legíveis por máquina.

Os pré-requisitos básicos são simples:

RequisitoPor que é importanteVerificação
Node.js 18 ou mais recenteObrigatório para o pacote Dockup CLInode --version
Conta do DockupÉ proprietária dos workspaces, serviços e bancos de dadosFaça login em app.dockup.ai
Repositório GitFonte do build do serviçoConfirme a URL remota e a branch
Token de APIAutenticação não interativadockup whoami --json
Endpoint de health ou porta em escutaControla a virada blue-greendockup health ... --json

Defina o limite de produção antes de o agente agir. O Claude Code pode criar um serviço, definir configurações não secretas, iniciar um deploy, consultar logs e propor um rollback. Ele não deve excluir um serviço, remover um banco de dados nem eliminar configurações sem aprovação explícita de uma pessoa.

O Dockup reforça esse limite. Comandos destrutivos se recusam a prosseguir sem --yes e retornam um erro estruturado needs_confirm, em vez de tratar a ausência de confirmação como um convite para improvisar. Para uma política mais abrangente, consulte as proteções de produção para agentes de IA.

Como instalar a skill do Claude Code e autenticar com segurança?

Instale a CLI, instale a skill incluída e verifique se ela corresponde ao binário instalado:

npm install -g dockup-cli
dockup skill install
dockup skill status --json

O instalador grava a skill canônica em ~/.agents/skills/dockup/ e cria um link para ela no diretório de skills do Claude Code. Como a skill é distribuída no mesmo pacote npm que a CLI, dockup update atualiza ambos. O Claude Code não precisa depender de uma referência de comandos copiada que talvez descreva flags não compatíveis com o binário local.

Use um token em variável de ambiente para sessões autônomas:

export DOCKUP_TOKEN="<TOKEN>"
dockup whoami --json

Uma resposta bem-sucedida identifica a conta e informa tokenSource como env. Não cole o token em um prompt, não faça commit dele no repositório nem o exiba em um log de CI. Os valores secretos armazenados no Dockup são mascarados quando a configuração é consultada novamente.

A referência completa da Dockup CLI é a superfície de comandos oficial. Com 135 comandos, o Claude Code deve consultar a referência atual e a skill empacotada, em vez de depender de flags memorizadas.

Como a skill é distribuída dentro do pacote da CLI, dockup update atualiza o executável e suas instruções em conjunto. Esse alinhamento de versões é mais seguro do que copiar uma lista de comandos para um prompt de longa duração.

Como a Dockup CLI cria um serviço a partir do Git?

Primeiro, peça ao agente para identificar o workspace e evite construir slugs a partir de nomes de exibição. Os destinos existentes são retornados por:

dockup services --json

Para um repositório que nunca foi submetido a deploy, uma única transação pode criar o serviço, fazer o deploy, aguardar a conclusão e vincular o diretório atual:

dockup create my-api \
  --repo https://github.com/acme/my-api \
  --project production \
  --deploy \
  --wait \
  --link \
  --json

Quando o repositório contém um Dockerfile, o Dockup o utiliza. Sem um, o Dockup recorre ao Nixpacks para detectar automaticamente o build. A escolha é explicada em Nixpacks vs Dockerfile, incluindo quando instruções de build explícitas compensam o custo de manutenção.

Antes de tentar criar novamente após uma sessão interrompida, execute dockup services --json outra vez e inspecione o destino exato. Se o serviço já existir, continue a partir do status dele, em vez de emitir outra solicitação de criação.

Depois de vinculado, os comandos nesse repositório podem resolver o destino a partir de .dockup, mas os runbooks de produção ainda devem registrar o valor completo de project/service. A descoberta é o limite seguro entre uma ação anterior incerta e uma nova alteração em produção.

Como preparar variáveis de ambiente, bancos de dados e verificações de integridade?

Mantenha a configuração comum separada dos secrets. O Claude Code pode definir um valor público de runtime e um secret mascarado sem exibir posteriormente os valores secretos armazenados:

dockup env set NODE_ENV=production \
  -s production/my-api \
  --json

dockup env set API_KEY="$API_KEY" \
  --secret \
  -s production/my-api \
  --json

As alterações de ambiente são aplicadas no próximo deploy. Isso é intencional: um container em execução mantém seu ambiente de processo atual até ser substituído. O padrão operacional completo é abordado em variáveis de ambiente e secrets.

Se a aplicação precisar de um banco de dados PostgreSQL gerenciado, crie-o no workspace selecionado e consulte seus detalhes por meio dos comandos de banco de dados documentados:

dockup db create --name main-db --type postgresql --json
dockup db list --json

A rede privada pode posteriormente fornecer aos serviços e bancos de dados hostnames estáveis no formato <slug>.internal dentro de um mesmo projeto. Não peça ao agente para inventar uma URL de banco de dados; use as informações de conexão retornadas pelo Dockup e armazene-as como um secret.

Configure um gate de readiness antes da primeira release importante em produção:

dockup health production/my-api \
  --path /healthz \
  --interval 5 \
  --retries 5 \
  --json

O Dockup realiza deploy blue-green sem downtime e só direciona o tráfego para a nova versão depois que o gate de health é aprovado. A arquitetura é explorada em deploys sem downtime.

Como o Claude Code faz o deploy e comprova que ele foi bem-sucedido?

Use --wait; não deixe o agente interpretar “deploy enfileirado” como “aplicação em execução”:

dockup deploy production/my-api --wait --json

O timeout padrão de espera é de 900 segundos. Em caso de sucesso, o comando termina com 0 e retorna o status terminal, a duração, o ID do deploy e a URL. Se o build falhar, ele termina com um código diferente de zero e code:"deploy_failed". Se a operação ainda estiver em execução quando o timeout for atingido, ele termina com um código diferente de zero e code:"deploy_timeout".

Uma instrução útil para o Claude Code é: “Trate o código de saída do processo como o resultado principal; depois, faça um resumo dos campos JSON.” Isso evita uma linguagem otimista quando a plataforma já retornou uma falha.

Após o sucesso, colete três sinais independentes:

dockup status production/my-api --json
dockup uptime production/my-api --hours 24 --json
dockup security production/my-api --json

status confirma o serviço e o estado do deploy mais recente. uptime retorna estatísticas de monitoramento minuto a minuto, incluindo o tempo médio de resposta e o p95. security mostra a CVE mais recente da imagem e a verificação de configuração. Essas verificações complementam as práticas de segurança no nível da aplicação; não substituem os testes da aplicação.

O que o Claude Code deve fazer quando a produção falhar?

Separe falhas de build de falhas de runtime. Um build malsucedido exige o log de build mais recente:

dockup logs production/my-api --build --json

Um container que foi compilado, mas falha após a inicialização, exige a saída de runtime:

dockup logs production/my-api --json

Para acompanhar um build preservando lotes legíveis por máquina, use o modo follow com NDJSON:

dockup logs production/my-api --build -f --json

O comando para quando o deploy atinge um estado terminal e termina com um código diferente de zero se houver falha. O Claude Code pode transmitir o progresso sem criar um loop de polling por conta própria.

Se a release atual estiver unhealthy e um deploy anterior conhecido precisar ser executado novamente, liste o histórico e use o ID exato:

dockup deployments production/my-api -n 20 --json
dockup rollback <deploymentId> production/my-api --json

O agente deve informar qual ID de deploy selecionou e por quê. Rollback é uma decisão operacional, não um substituto para compreender a falha. Preserve o log de build, o log de runtime, o código de saída e o registro de auditoria para que o incidente continue sendo reconstruível.

Um relatório final de deploy do Claude Code deve incluir o destino, o commit ou a branch, o ID do deploy, o status terminal, a URL, o tempo decorrido, o resultado do health check e qualquer risco pendente. Essas evidências transformam uma ação autônoma em uma alteração de produção passível de revisão.

Defina um contrato de conclusão para produção

Antes de começar, inclua no task o contrato de conclusão esperado. Uma solicitação útil é: faça o deploy do repositório vinculado em production/my-api; aguarde um resultado terminal; não exclua, elimine nem transfira nada; em caso de falha, retorne o código de erro e as 60 linhas finais relevantes do log de build; em caso de sucesso, retorne o status, a URL, o ID do deploy, a duração e as evidências de health.

Essa formulação fornece ao Claude Code um objetivo delimitado e um schema de relatório. Ela também impede que o agente altere “prestativamente” uma infraestrutura não relacionada quando a release falhar. O agente pode propor uma correção separada, mas a ação em produção continua atribuível a uma única solicitação.

Para releases recorrentes, mantenha um pequeno registro de releases no repositório ou no sistema de gerenciamento de mudanças. Registre o destino, a branch de origem, o path de health esperado, o timeout normal e a ação de recuperação aprovada. Um deploy do Claude Code é mais seguro quando a sessão seguinte não precisa reconstruir esses fatos a partir do histórico do chat.

Verifique o limite da conta antes da primeira gravação

Os workspaces são limites de propriedade e cobrança. Peça ao Claude Code para exibir whoami, listar os serviços e informar o workspace selecionado antes de alterar qualquer coisa. O plano Pro custa US$ 20 por mês, com US$ 20 em créditos de uso, e é o plano pago recomendado; todos os planos pagos permitem workspaces, bancos de dados e deploys ilimitados, enquanto o uso de CPU, RAM e disco é medido por minuto em relação ao saldo do plano.

Esse modelo de preços não altera a regra de segurança: um agente deve inspecionar o uso e o escopo do destino antes de escalar ou criar recursos adicionais. O relatório de produção deve distinguir o plano de assinatura do consumo efetivamente medido.

Coloque o fluxo em produção

Instale a skill no mesmo ambiente em que o Claude Code será executado, verifique a autenticação e comece com um serviço de baixo risco cujo endpoint de health já seja conhecido.

npm install -g dockup-cli
dockup skill install

O primeiro comando instala a CLI. O segundo instala a skill correspondente do Dockup para o Claude Code e o Codex. Comece gratuitamente em app.dockup.ai.

FAQ

O Claude Code pode fazer deploy diretamente em produção com o Dockup?

Sim. Instale a skill do Dockup, forneça um DOCKUP_TOKEN com escopo definido, resolva o destino exato de projeto/serviço e execute o comando de deploy com --wait e --json.

Por que o Claude Code deve usar --wait?

Sem --wait, uma resposta bem-sucedida significa apenas que o deploy foi enfileirado. Com --wait, o Dockup termina com 0 somente após o sucesso e retorna erros estruturados deploy_failed ou deploy_timeout nos demais casos.

O Claude Code consegue ver os valores secretos armazenados?

O Dockup mascara os valores secretos na saída. O agente pode definir ou substituir um secret, mas a leitura da configuração de ambiente não retorna o valor secreto armazenado.

O que acontece quando um repositório não tem Dockerfile?

O Dockup usa o Nixpacks para detectar e compilar a aplicação automaticamente. Um Dockerfile do repositório tem precedência quando está presente.

Como o Claude Code pode se recuperar de uma release problemática?

Ele deve inspecionar os logs de build e runtime, listar o histórico de deploys e executar novamente um deploy anterior conhecido usando dockup rollback com o ID exato do deploy.