Deploy automático: do Claude e GitHub para o cPanel
Criou seu site com o Claude? Conecte ele ao GitHub e à sua hospedagem na Nuvem. Com o deploy automático, é só pedir uma mudança ao Claude que o site é atualizado sozinho.
Antes de começar, você vai precisar de:
- Uma hospedagem na Nuvem com acesso ao cPanel.
- Uma conta gratuita no GitHub (criar conta).
- Uma conta no Claude com plano pago que inclua o Claude Code (claude.ai/code), como o Pro. Se ao abrir o link aparecer um convite para assinar, o seu plano não inclui.
- O seu domínio apontado para a Nuvem. Ainda não apontou? Veja Alterar DNS de domínios.
- O arquivo da sua landing page (por exemplo
landing-page.html), se você já criou o site com o Claude.
Este passo a passo é para sites em HTML, CSS e JavaScript, como landing pages. Se o seu site é WordPress, ele não é para você.
Usa o plano gratuito do Claude? No gratuito, o Claude não consegue enviar o site para o GitHub sozinho, então o deploy automático não compensa. Baixe a página que o Claude criar e publique direto pelo cPanel: veja Como publicar um site HTML no cPanel.
Sua senha fica protegida. O Claude nunca precisa da senha da sua hospedagem. Ela fica guardada num cofre do GitHub (os Secrets), que nem o Claude consegue ler. Se alguém pedir essa senha num chat, não envie.
Palavras que você vai ver neste tutorial
- Repositório: a pasta do seu site guardada no GitHub.
- Deploy: a publicação do site. Aqui ela é automática: acontece sozinha a cada mudança.
- FTP: o jeito que o GitHub usa para enviar os arquivos para a sua hospedagem.
- Secrets: um cofre do GitHub onde ficam as senhas, protegidas.
- Pull Request: uma mudança esperando a sua aprovação. Você aprova clicando em Merge.
Crie um repositório para o seu site
O repositório é uma pasta na nuvem do GitHub onde fica o código do seu site. É nele que o Claude vai trabalhar.
- 1
Entre no GitHub e acesse github.com/new. Preencha assim:
- Repository name: um nome simples, como
meu-site. - Choose visibility: Private, para só você ver o código. O deploy funciona normalmente com o repositório privado, não precisa deixar público.
- Add README: ligado (On).
Clique em Create repository. A página que abre em seguida é o seu repositório: deixe essa aba aberta, você vai voltar nela na Etapa 3.

- Repository name: um nome simples, como
Crie uma conta FTP para o deploy automático
Essa conta é a “chave” que o GitHub usa para colocar os arquivos do site na sua hospedagem.
- 2
Entre no cPanel da sua hospedagem (não sabe como? Veja Como acessar o cPanel pela Área do Cliente). Na seção Arquivos, clique em Contas de FTP.

- 3
Preencha o formulário Adicionar Conta de FTP:
- Fazer login:
deploy - Senha: clique em Gerador de senha, copie a senha gerada, marque a caixinha confirmando que copiou e clique em Usar senha. Guarde essa senha (num bloco de notas, por exemplo): você vai usar na Etapa 3.
- Diretório: apague o que vier escrito e deixe só
public_html.
Clique em Criar conta de FTP.

Seu site fica num subdomínio ou domínio adicional? Use a pasta dele no lugar de
public_html. Você encontra a pasta em Domínios, no cPanel. - Fazer login:
- 4
A conta aparece na lista. Anote o login completo, que fica assim:
[email protected].
Guarde os dados de acesso no cofre do GitHub
Os Secrets são um cofre: depois de salvos, ficam criptografados e ninguém consegue ver o conteúdo, nem você, nem o Claude.
- 5
Volte para a aba do seu repositório no GitHub (o endereço é
github.com/seu-usuario/meu-site). Na barra do topo, clique em Settings (ícone de engrenagem). No menu da esquerda, clique em Secrets and variables e depois em Actions. Por fim, clique no botão verde New repository secret.
- 6
Você vai criar três secrets, um de cada vez. Para cada um: em Name, copie o nome exatamente como está na tabela; em Secret, coloque o valor; clique em Add secret. Para criar o próximo, clique de novo em New repository secret.
Name Secret (o que colocar) FTP_SERVERO domínio do seu site, por exemplo seudominio.com.br. Escreva só o domínio: semhttps://, semwwwe sem barra no final.FTP_USERNAMEO login da Etapa 2: [email protected]FTP_PASSWORDA senha que você guardou na Etapa 2. 
Usa Cloudflare com o proxy ligado (nuvem laranja)? O FTP não passa pelo proxy. No
FTP_SERVER, coloque o endereço do servidor da sua hospedagem (por exemplosalto.nuvemidc.com, o mesmo que aparece na barra do navegador quando você abre o cPanel) no lugar do domínio. - 7
No final, a lista mostra os três secrets:

Conecte o Claude ao GitHub e peça para publicar o site
- 8
Abra o site claude.ai/code e entre com a sua conta do Claude. Na caixa de mensagem, digite:
Quero conectar ao GitHubO Claude responde com um botão Conectar ao GitHub. Clique nele.

Imagem ilustrativa. A tela pode variar um pouco conforme a versão do Claude.
- 9
Uma nova aba abre no seu navegador, já no site do GitHub. Se o GitHub pedir, entre com o seu usuário e senha do GitHub. A tela está em inglês; faça assim:
- Em Repository access (acesso aos repositórios), marque Only select repositories (somente os repositórios escolhidos).
- Clique em Select repositories e escolha o meu-site, criado na Etapa 1.
- Clique no botão verde Install & Authorize (instalar e autorizar).

Escolhendo só o repositório do site, o Claude não tem acesso a mais nada da sua conta do GitHub. Se a aba não abrir, verifique se o navegador bloqueou o pop-up e permita para o claude.ai.
- 10
Depois de autorizar, o GitHub leva você de volta ao Claude (se não levar, feche a aba do GitHub e volte para a aba do Claude). Agora o GitHub aparece como conectado: escolha o repositório meu-site para começar.

- 11
Agora você vai pedir ao Claude para publicar o site. São três ações:
- Anexe o arquivo da sua landing page, no botão + Anexar da caixa de mensagem.
- Clique em Copiar pedido, logo abaixo, e cole na caixa de mensagem (Ctrl + V, ou Cmd + V no Mac).
- Clique na seta para enviar.
Onde está o arquivo da landing page? Se você criou a página numa conversa com o Claude, use a opção de baixar o arquivo na própria conversa e salve no computador.
Ainda não tem a página? Não precisa anexar nada. Antes de colar o pedido, escreva o que você quer, por exemplo: “Crie uma landing page para a minha clínica odontológica, com botão de WhatsApp e endereço. Depois:” e cole o pedido logo em seguida.
Pedido pronto para o ClaudeColoque minha landing page neste repositório e configure o deploy automático para a Nuvem Hospedagem: 1. Salve a página como index.html na raiz do repositório. Se houver imagens ou CSS, coloque numa pasta assets. 2. Crie o arquivo .github/workflows/deploy.yml com exatamente este conteúdo: name: Deploy no cPanel on: push: branches: [main] workflow_dispatch: jobs: deploy: name: Enviar arquivos para a hospedagem runs-on: ubuntu-latest steps: - name: Baixar o código do repositório uses: actions/checkout@v5 - name: Enviar por FTP para o cPanel uses: SamKirkland/[email protected] with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} protocol: ftps server-dir: ./ exclude: | **/.git* **/.git*/** README.md 3. Os secrets FTP_SERVER, FTP_USERNAME e FTP_PASSWORD já estão cadastrados no GitHub. Não peça a senha. 4. Envie as alterações para a branch main.
- 12
Aguarde o Claude trabalhar, o que leva de um a alguns minutos. Ele organiza os arquivos, cria o deploy e envia tudo para o GitHub. Quando aparecer a mensagem de que as alterações foram enviadas, o deploy já começou. Se o Claude fizer alguma pergunta, responda normalmente, do seu jeito.

O Claude criou um “Pull Request” em vez de enviar direto?
Tudo certo, é só aprovar. Abra o link do Pull Request que o Claude mostrou (ou a aba Pull requests do repositório) e clique em Merge pull request e depois em Confirm merge. O deploy começa na hora.

Prefere criar o arquivo de deploy sem o Claude?
No repositório, clique em Add file › Create new file, digite o nome
.github/workflows/deploy.yml, cole o conteúdo abaixo e clique em Commit changes..github/workflows/deploy.ymlname: Deploy no cPanel on: push: branches: [main] workflow_dispatch: jobs: deploy: name: Enviar arquivos para a hospedagem runs-on: ubuntu-latest steps: - name: Baixar o código do repositório uses: actions/checkout@v5 - name: Enviar por FTP para o cPanel uses: SamKirkland/[email protected] with: server: ${{ secrets.FTP_SERVER }} username: ${{ secrets.FTP_USERNAME }} password: ${{ secrets.FTP_PASSWORD }} protocol: ftps server-dir: ./ exclude: | **/.git* **/.git*/** README.md

Veja o deploy acontecer e o site no ar
- 13
No GitHub, abra a aba Actions do repositório. Em alguns segundos aparece o deploy com um ✓ verde, o que quer dizer que deu certo.

- 14
Abra o seu domínio no navegador. Seu site está no ar! Se ainda aparecer a página antiga, aperte Ctrl + F5 (ou Cmd + Shift + R no Mac) para recarregar sem cache.

Pronto! A configuração acabou. Você não precisa repetir nenhuma dessas etapas.
Para mudar o site, é só pedir ao Claude
Abra o claude.ai/code, escolha o repositório do site e escreva o que quer mudar, do seu jeito. Por exemplo:
- “Troque o número do WhatsApp para (11) 98765-4321.”
- “Adicione uma seção de depoimentos depois dos preços.”
- “Deixe o botão principal verde e maior no celular.”

Imagem ilustrativa.
Assim que o Claude envia a alteração (ou que você aprova o Pull Request), o deploy roda sozinho e o site é atualizado em menos de um minuto.
Não edite o site pelo cPanel. O deploy leva as mudanças do GitHub para a hospedagem, nunca o contrário. Se você alterar um arquivo pelo Gerenciador de Arquivos, essa mudança é substituída no próximo deploy.
Deu erro?
Se o deploy aparecer com um ✗ vermelho na aba Actions, clique nele e abra o passo Enviar por FTP para o cPanel para ver a mensagem. Os casos mais comuns:
Não aparece nada na aba Actions
Falta o arquivo de deploy ou ele está com o nome errado. Na página do repositório deve existir a pasta .github/workflows com o arquivo deploy.yml dentro. Se não existir, crie seguindo o quadro “Prefere criar o arquivo de deploy sem o Claude?”, no passo 12.
O Claude pediu a senha do FTP ou da hospedagem
Não envie. A senha deve ficar só nos Secrets do GitHub (Etapa 3). Responda ao Claude: “os secrets já estão cadastrados no GitHub, use FTP_SERVER, FTP_USERNAME e FTP_PASSWORD”.
Erro de login ou “530 Login authentication failed”
Usuário ou senha incorretos. Confira se o FTP_USERNAME tem o login completo ([email protected]) e se a senha não ficou com espaço no começo ou no fim. Se precisar, troque a senha em Contas de FTP › Alterar senha no cPanel e atualize o secret FTP_PASSWORD no GitHub (ícone de lápis).
Timeout, “ECONNREFUSED” ou não conecta no servidor
Confira o FTP_SERVER: ele deve ser só o domínio, como seudominio.com.br, sem https://, sem www e sem barra no final. O domínio também precisa estar apontado para a Nuvem. Se ele usa Cloudflare com o proxy ligado, use o endereço do servidor (veja o balão na Etapa 3).
Erro de certificado (“certificate”, “hostname does not match”)
Acontece quando o FTP_SERVER está com um IP ou com um endereço diferente do domínio, como ftp.seudominio.com.br ou www.seudominio.com.br. Use só o domínio (seudominio.com.br) ou, se usa Cloudflare, o endereço do servidor.
Deu certo, mas o site não mudou
Confira três coisas: o Diretório da conta FTP é public_html (Etapa 2); o index.html está na raiz do repositório, fora de pastas; e limpe o cache do navegador (Ctrl + F5 no computador).
Meu site é em React, Vite, Angular ou Vue
Peça ao Claude: “Este projeto precisa de build. Ajuste o deploy.yml para instalar as dependências, rodar o build e enviar só a pasta gerada (dist ou build)”. Se o site tem páginas internas, peça também: “crie um .htaccess que direcione todas as rotas para o index.html”.
Atenção: o deploy substitui os arquivos do site pelos do repositório. O que não está no repositório, como .htaccess e php.ini, não é apagado. Prefere o deploy manual pelo Git do cPanel? Veja GitHub no cPanel.
Ficou com dúvidas?
Nosso suporte ajuda você a configurar, 24 horas por dia.
Obrigado pela resposta!