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
- 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.
- 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.
- 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-usuariopelo nome real da sua conta no VPS. - 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.
- 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!”
- Payload URL:
- Crie um script de deploy automático
No terminal, dentro da pasta do projeto, crie um arquivo chamadodeploy.shcom 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, depoisYeEnter.Agende o script para rodar com permissão de execução:
chmod +x deploy.sh
- 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 comnode.js(se já tiver instalado) oupython.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 8080Isso cria um servidor de escuta na porta 8080. Depois, configure o webhook para apontar para
http://seu-vps.gehost.com.br:8080/trigger-deploy. - 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 scriptdeploy.shserá 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