Servidor & DevOps 7 visualizações

Como configurar um pipeline de CI/CD simples para um projeto pequeno em VPS

Ver no WHMCS

Como configurar um pipeline de CI/CD simples para um projeto pequeno em VPS

Olá, amigo(a) desenvolvedor(a)! Seja bem-vindo(a) ao seu primeiro passo rumo à automação com tranquilidade. Aqui, na GeHost, acreditamos que tecnologia deve ser acessível — mesmo quando parece complexa. Hoje, vamos juntos montar um pipeline de CI/CD simples para um projeto pequeno, usando apenas o que você já tem no seu VPS. Nada de ferramentas mágicas ou configurações impossíveis. Só prática, clareza e um toque de paciência. Você consegue!

O que é CI/CD? (Pense como um amigo explicando)

CI/CD é como um sistema de entrega de pizza com qualidade garantida: CI (Integração Contínua) é quando você testa cada novo pedaço da pizza assim que ele é feito. CD (Entrega Contínua) é quando, depois de testado, ele é entregue automaticamente ao cliente. No mundo do código, isso quer dizer: toda vez que você atualiza seu projeto, o sistema testa, compila e implanta o novo código — sem precisar fazer tudo manualmente.

Dica do Sensei: Comece pequeno. Um pipeline simples é melhor que um complexo que nunca roda. Vamos montar um que funcione, depois melhoramos.

Pré-requisitos: o que você precisa

Antes de começar, confirme que seu VPS já está configurado com:

  • SSH acessível (você consegue se conectar via terminal).
  • Git instalado.
  • Um repositório Git no GitHub, GitLab ou outro serviço (ex: https://github.com/seu-usuario/meu-projeto.git).
  • Permissões de escrita na pasta onde seu projeto será implantado (ex: /home/seu-usuario/public_html).

Se você não tem tudo isso, não se preocupe — o painel do cliente da GeHost (painel.gehost.com.br) tem tudo que você precisa para gerenciar seu VPS, e nosso suporte está à disposição para ajudar.

Passo a passo: montando o pipeline

  1. Conecte-se ao seu VPS via SSH
    Use um terminal (como o Terminal do Mac, WSL no Windows ou Putty no Windows) e conecte-se com o usuário e senha do seu VPS. Exemplo:
    ssh usuario@seu-vps.gehost.com.br

    Se não souber seu usuário ou senha, acesse o painel do cliente e verifique as credenciais.

  2. Instale Git (se ainda não estiver instalado)
    No terminal, execute:
    sudo apt update && sudo apt install git -y

    Isso garante que você tenha o Git para clonar e atualizar seu repositório.

  3. Crie uma pasta para seu projeto no servidor
    Vamos usar a pasta onde seu site será servido. Por exemplo:
    mkdir /home/seu-usuario/public_html/meu-projeto

    Substitua seu-usuario pelo nome real da sua conta no VPS.

  4. Clone seu repositório
    Dentro da pasta criada, execute:
    git clone https://github.com/seu-usuario/meu-projeto.git .

    Isso copia todo o código do seu repositório para a pasta do servidor. O ponto final (.) é importante — ele indica que o conteúdo vai para a pasta atual.

  5. Configure um webhook (ou gatilho) no repositório
    Acesse seu repositório no GitHub/GitLab, vá em Settings → Webhooks e adicione um novo webhook com as seguintes configurações:

    • Payload URL: https://seu-vps.gehost.com.br/trigger-deploy (substitua pelo seu domínio real)
    • Content type: application/json
    • Events: Push (para disparar ao enviar código)

    Esse webhook é o “sinal” que avisa seu servidor: “Chegou novo código! Atualize!”

  6. Crie um script de deploy automático
    No terminal, dentro da pasta do projeto, crie um arquivo chamado deploy.sh com o comando:
    nano deploy.sh

    Depois, cole este conteúdo:

    #!/bin/bash
    echo "Iniciando deploy..."
    cd /home/seu-usuario/public_html/meu-projeto
    git pull origin main
    echo "Deploy concluído com sucesso!"

    Salve com Ctrl+X, depois Y e Enter.

    Agende o script para rodar com permissão de execução:

    chmod +x deploy.sh
  7. Crie um endpoint HTTP para receber o webhook
    Como o webhook envia uma requisição HTTP, você precisa de um pequeno servidor para recebê-lo. Vamos usar um script simples com node.js (se já tiver instalado) ou python.

    Se usar Python (recomendado para iniciantes), crie um arquivo chamado webhook_server.py:

    python3 -m http.server 8000

    Esse comando cria um servidor simples na porta 8000. Mas para receber requisições externas, você precisará de um serviço de proxy ou usar um serviço como ngrok (não é obrigatório, mas ajuda).

    Alternativa prática: Use um script simples no servidor que responda ao webhook com um comando de execução:

    echo "POST /trigger-deploy HTTP/1.1
    Host: seu-vps.gehost.com.br
    Content-Type: application/json
    
    {
      \"message\": \"Deploy iniciado\"
    }" | nc -l -p 8080

    Isso cria um servidor de escuta na porta 8080. Depois, configure o webhook para apontar para http://seu-vps.gehost.com.br:8080/trigger-deploy.

  8. Teste o pipeline
    Faça um pequeno commit no seu repositório (ex: adicione uma linha no README.md) e envie ao GitHub. O webhook será disparado, o servidor receberá a requisição, e o script deploy.sh será executado.

    Verifique se o código foi atualizado na pasta do servidor com:

    ls /home/seu-usuario/public_html/meu-projeto

    Se o arquivo mudou, parabéns! Seu pipeline está funcionando!

Dica extra: proteja seu endpoint

Seu servidor não deve aceitar qualquer requisição. Adicione um token de segurança no webhook e verifique-o no script de deploy. Exemplo:

if [ "$WEBHOOK_TOKEN" != "seu-token-seguro" ]; then
  echo "Acesso negado"
  exit 1
fi

Isso evita que alguém mal-intencionado dispare o deploy sem autorização.

Conclusão: você está no caminho certo

Parabéns! Você acabou de criar um pipeline de CI/CD simples, mesmo com um projeto pequeno. Não é perfeito — mas é funcional, automatizado e, o mais importante, seu.

Quer ir além? No futuro, você pode adicionar testes automáticos, envio de e-mail de notificação, ou usar ferramentas como GitHub Actions (que já são mais fáceis de configurar). Mas por enquanto, você já tem o essencial.

Se tiver dúvidas, não hesite em acessar o painel do cliente ou entrar em contato com nosso suporte. Estamos aqui para te ajudar, com paciência e calor humano.

Até a próxima

Precisa de Ajuda?

Nossa equipe está pronta para resolver suas dúvidas.