Como configurar um pipeline simples de CI/CD para publicar automaticamente no VPS
Olá, querido(a) desenvolvedor(a) e amigo(a) da GeHost! 🌟
Se você já tem um site ou aplicação em desenvolvimento e quer deixar o processo de publicação mais rápido, seguro e sem precisar se lembrar de "fazer upload" toda hora, você está no lugar certo. Hoje, vamos aprender, de forma simples e prática, como montar um pipeline de CI/CD (Integração Contínua e Entrega Contínua) para publicar automaticamente seu projeto no seu servidor (VPS) — mesmo que você não seja um expert em DevOps.
Imagine: você faz um commit no GitHub, e em segundos, seu site já está atualizado no servidor. Isso é possível — e hoje, você vai fazer isso com a GeHost ao seu lado. Vamos lá, com calma, passo a passo. Você é capaz! 💪
Antes de começar: entenda o que está por trás
Antes de mergulhar nos passos, vamos entender o que são CI e CD:
- CI (Integração Contínua): todo código novo que você envia é testado automaticamente.
- CD (Entrega Contínua): quando o código passa nos testes, ele é publicado automaticamente.
Neste guia, vamos focar no CD: a publicação automática no seu servidor. Vamos usar o GitHub como repositório e o GitHub Actions como motor do pipeline. O servidor (VPS) será seu ambiente de produção — e vamos usar SSH para conectar e atualizar o site.
Passo 1: Prepare seu projeto no GitHub
Seu código precisa estar em um repositório público ou privado no GitHub. Certifique-se de que:
- O projeto tenha um arquivo
index.htmlouapp.php(ou outro arquivo principal). - O repositório esteja configurado com um branch principal (geralmente chamado
mainoumaster).
Se precisar, crie um novo repositório no GitHub e faça o primeiro commit com seu código.
Passo 2: Acesse o painel do seu VPS via SSH
Para que o GitHub Actions possa publicar no seu VPS, você precisa permitir acesso por SSH. Siga os passos:
- Entre no painel do cliente da GeHost.
- No menu, vá em Gerenciamento de Servidores ou SSH (se seu plano incluir acesso SSH).
- Confira se o acesso SSH está ativado. Caso não esteja, entre em contato com o suporte (não é possível ativar por conta própria).
- Se tiver acesso, anote o IP do servidor (você pode ver no painel) e o nome de usuário (geralmente
rootou um usuário criado).
Passo 3: Gere uma chave SSH para o GitHub Actions
Para que o GitHub Actions possa se conectar ao seu VPS sem senha, precisamos de uma chave SSH. Faça isso no seu computador local:
- Abra o terminal (ou Git Bash no Windows).
- Execute:
ssh-keygen -t ed25519 -C "github-actions@gehost.com.br" - Pressione Enter para aceitar o local padrão (
~/.ssh/id_ed25519). - Deixe a senha vazia (não coloque senha).
- Depois de gerado, copie a chave pública:
cat ~/.ssh/id_ed25519.pub
Essa chave pública é o que você vai colar no servidor.
Passo 4: Adicione a chave no seu VPS
Conecte-se ao seu VPS via SSH e faça o seguinte:
- Entre no diretório do usuário:
cd /home/seu-usuario/.ssh - Crie o arquivo
authorized_keys(se não existir):touch authorized_keys - Abra o arquivo:
nano authorized_keys - Coloque a chave pública que você copiou no passo anterior.
- Salve com
Ctrl + O, depoisEnter, e saia comCtrl + X. - Defina permissões corretas:
chmod 600 authorized_keys
Pronto! Agora o GitHub Actions pode se conectar ao seu servidor com segurança.
Passo 5: Configure o GitHub Actions
No seu repositório no GitHub, crie uma nova pasta chamada .github/workflows. Dentro dela, crie um arquivo chamado deploy.yml.
Abra esse arquivo e cole o seguinte conteúdo (ajuste os valores conforme seu caso):
name: Deploy to VPS
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Deploy via SSH
uses: appleboy/ssh-action@v0.1.5
with:
host: ${{ secrets.VPS_HOST }}
username: ${{ secrets.VPS_USER }}
key: ${{ secrets.VPS_SSH_KEY }}
script: |
cd /home/seu-usuario/public_html
git pull origin main
echo "Deploy concluído!"
⚠️ Importante: Substitua seu-usuario pelo nome do usuário do seu VPS. O caminho /home/seu-usuario/public_html é comum, mas verifique no painel da GeHost se seu site está em outro diretório.
Passo 6: Guarde as credenciais no GitHub
As credenciais (IP, usuário e chave SSH) não podem ficar no código. Você precisa salvá-las como secrets no GitHub:
- No repositório no GitHub, vá em Settings → Secrets and variables → Actions.
- Clique em New repository secret.
- Crie três segredos:
- NAME:
VPS_HOST→ VALUE: o IP do seu VPS - NAME:
VPS_USER→ VALUE: o nome de usuário do VPS - NAME:
VPS_SSH_KEY→ VALUE: a chave privada (a que você gerou comssh-keygen— o arquivoid_ed25519, sem o.pub)
⚠️ Atenção: a chave privada deve ser copiada inteira, incluindo as linhas -----BEGIN OPENSSH PRIVATE KEY----- e -----END OPENSSH PRIVATE KEY-----. Não coloque aspas.
Passo 7: Teste o pipeline
Volte ao seu repositório no GitHub. Faça uma alteração no código (por exemplo, altere uma linha em index.html) e faça um commit e push.
Em alguns segundos, vá para Actions no GitHub e veja o pipeline rodando. Se tudo estiver certo, você verá uma mensagem de sucesso!
Depois, acesse seu site e veja a mudança aparecendo — automaticamente! 🎉
Dica do Sensei
Se algo não funcionar, verifique:
- Se a chave SSH está no
authorized_keysno servidor.- Se o caminho do diretório (
public_html) está correto.- Se os secrets no GitHub estão com os valores exatos (sem espaços extras).
- Se o VPS permite conexões SSH do GitHub (verifique no painel da GeHost).