Como configurar um pipeline de CI/CD com GitLab na hospedagem GeHost
Oi! Eu sou a Sensei da GeHost 🌱 e hoje vou te ensinar, com bastante calma, como conectar seu projeto no GitLab a um pipeline de CI/CD (Integração Contínua / Entrega Contínua) que publica automaticamente as atualizações do seu site ou sistema na sua hospedagem. Nada de mistério: vamos passo a passo, sem pressa.
Importante antes de começar: os planos de hospedagem da GeHost funcionam em painel cPanel. Recursos como acesso SSH podem variar de acordo com o seu plano e configuração. Antes de montar o pipeline, confirme no painel.gehost.com.br ou com o nosso suporte se o seu ambiente tem acesso SSH liberado — é a partir dele que o GitLab vai conseguir "conversar" com a sua hospedagem.
1. Entenda o que o pipeline vai fazer
Pipeline de CI/CD, no fundo, é uma receita de bolo automática: toda vez que você atualiza o código no GitLab, um robozinho (o "runner") executa uma sequência de tarefas — testar, empacotar e, no final, enviar os arquivos atualizados para a sua hospedagem. Assim você não precisa mais subir arquivo manualmente.
2. Verifique o acesso SSH na sua hospedagem
- Acesse o cPanel da sua conta.
- Procure a opção de SSH Access (Acesso SSH) dentro do painel.
- Se não encontrar essa opção ou não tiver certeza se está habilitada, fale com o nosso suporte informando o domínio da sua hospedagem — eles confirmam certinho pra você.
Sem acesso SSH, ainda é possível automatizar publicações via FTP/SFTP dentro do pipeline — vamos comentar essa alternativa lá no final, não se preocupe.
3. Gere uma chave SSH exclusiva para o pipeline
Por segurança, nunca use sua senha pessoal dentro do pipeline. O ideal é uma chave SSH dedicada só para essa automação.
- No seu computador (ou em um ambiente seguro), gere um par de chaves SSH.
- Adicione a chave pública na sua hospedagem, na seção de gerenciamento de chaves SSH do cPanel.
- Guarde a chave privada — ela vai para o GitLab, nunca para o código do projeto.
4. Cadastre a chave privada como variável segura no GitLab
- No seu projeto do GitLab, vá em Settings > CI/CD > Variables.
- Crie uma variável (por exemplo
SSH_PRIVATE_KEY) e cole o conteúdo da chave privada. - Marque a variável como Protected e Masked, para que ela não apareça nos logs do pipeline.
5. Crie o arquivo .gitlab-ci.yml
Esse arquivo é o "roteiro" do pipeline. Ele fica na raiz do seu repositório. Um exemplo simples de deploy via SSH/rsync:
deploy:
stage: deploy
script:
- mkdir -p ~/.ssh
- echo "$SSH_PRIVATE_KEY" > ~/.ssh/id_rsa
- chmod 600 ~/.ssh/id_rsa
- rsync -avz -e "ssh -o StrictHostKeyChecking=no" ./ usuario@seu-dominio.com.br:~/public_html/
only:
- main
Troque usuario e o caminho de destino pelos dados reais da sua conta (você encontra isso no painel ou pede ao suporte). A ideia é: sempre que houver uma atualização na branch main, o pipeline copia os arquivos automaticamente para dentro da sua hospedagem.
6. Teste o pipeline
- Faça um commit e um push para o GitLab.
- Acompanhe a execução em CI/CD > Pipelines dentro do próprio GitLab.
- Se der tudo certo, confira se os arquivos chegaram na sua hospedagem usando o Gerenciador de Arquivos do cPanel.
Dica da Sensei: comece testando o pipeline em uma pasta de testes dentro da hospedagem (tipo public_html/teste) antes de apontar direto para o site principal. Assim você evita sustos em produção. 💛
7. Alternativa sem acesso SSH: deploy via FTP/SFTP
Se o seu plano não tiver SSH liberado, dá pra fazer praticamente a mesma coisa usando um passo de deploy via FTP/SFTP no .gitlab-ci.yml, com um pacote como lftp ou uma imagem Docker própria para isso. O princípio é o mesmo: o GitLab envia os arquivos atualizados direto para a pasta da sua hospedagem a cada push.
8. Boas práticas para não ter dor de cabeça
- Nunca deixe senha ou chave privada escrita direto no código — sempre use as variáveis protegidas do GitLab.
- Rode o pipeline primeiro em uma branch de testes antes de liberar para a branch principal.
- Faça backup antes de qualquer primeira execução em produção — você pode gerar um backup pela própria tela de Backup do cPanel.
- Documente, no seu próprio projeto, quais pastas o pipeline sobrescreve, para você (ou sua equipe) nunca perder um arquivo por engano.
Ficou com dúvida em algum passo, ou não sabe se o seu plano tem acesso SSH? É só chamar o suporte da GeHost pelo painel.gehost.com.br que a gente te ajuda a configurar com carinho, direto no seu caso. 🌸
E é isso! Com esses passos, seu projeto passa a se atualizar sozinho na hospedagem sempre que você evoluir o código no GitLab. Um abraço da sua Sensei, e bons deploys! 🚀