Como automatizar o deploy de atualizações usando um script de shell (bash) no VPS
Olá, querido(a) desenvolvedor(a)!
Seja bem-vindo(a) ao seu novo passo rumo à automação e produtividade. Aqui, na GeHost, entendemos que você merece focar no que realmente importa: criar, inovar e entregar valor — não ficar repetindo tarefas manuais. Por isso, hoje vamos aprender juntos como automatizar o deploy de atualizações no seu servidor com um simples script de shell (bash).
Se você já tem um VPS com acesso root (ou acesso administrativo via SSH), esse guia é para você. Vamos transformar o processo de atualizar seu site em um clique — ou melhor, em um comando.
Sensei diz: "A automação não é para substituir o programador. É para liberar o programador."
Passo 1: Acesse seu servidor via SSH
Antes de tudo, você precisa se conectar ao seu servidor. Para isso, use um cliente SSH como Putty (Windows), Terminal (macOS/Linux) ou qualquer outro que suporte conexão SSH.
Use o endereço IP do seu VPS (consulte seu painel) e suas credenciais de acesso (usuário e senha ou chave SSH).
Passo 2: Crie um script de shell
No seu servidor, vamos criar um arquivo com extensão .sh. Esse será o nosso "manual automático".
Abra o terminal e digite:
nano deploy.sh
Isso abrirá o editor de texto nano. Agora, cole o seguinte conteúdo (ajuste conforme seu projeto):
#!/bin/bash
# === Configurações ===
REPO_DIR="/home/seu_usuario/public_html" # Caminho do seu site
GIT_REPO="https://github.com/seu_usuario/seu_projeto.git" # URL do repositório
# === Início do script ===
echo "🔄 Iniciando atualização automática..."
# Navega até o diretório do projeto
cd "$REPO_DIR" || { echo "❌ Diretório não encontrado."; exit 1; }
# Atualiza o código do Git
git pull origin main || { echo "❌ Falha ao atualizar o código."; exit 1; }
# Limpa cache (se necessário)
rm -rf /home/seu_usuario/public_html/cache/*
# Reinicia o serviço (se aplicável)
# systemctl restart apache2 # Exemplo para Apache
echo "✅ Atualização concluída com sucesso!"
Dica: Substitua seu_usuario e seu_projeto pelo seu nome de usuário e nome do repositório. Se seu projeto usa outra branch (ex: dev), troque main por ela.
Passo 3: Torne o script executável
Salve o arquivo (Ctrl+O no nano), saia (Ctrl+X), e agora vamos tornar o script executável:
chmod +x deploy.sh
Pronto! Agora seu script pode ser rodado diretamente.
Passo 4: Teste o script manualmente
Execute o script com:
./deploy.sh
Se tudo estiver certo, você verá uma mensagem de sucesso. Se houver erro, verifique os caminhos e permissões.
Passo 5: Automatize com o cron (agendamento)
Para que o script se execute automaticamente, vamos usar o cron, o agendador do Linux.
Abra o cron com:
crontab -e
Adicione esta linha para rodar o script a cada 15 minutos:
*/15 * * * * /home/seu_usuario/deploy.sh
Salve e saia (no nano: Ctrl+O → Enter → Ctrl+X).
Pronto! Agora seu site será atualizado automaticamente a cada 15 minutos.
Sensei diz: "A verdadeira liberdade está em não ter que fazer nada — desde que o sistema esteja bem configurado."
Dicas finais para segurança e tranquilidade
- Use chaves SSH em vez de senha para acesso ao servidor. É mais seguro e permite autenticação sem senha.
- Não deixe o script exposto em pastas públicas. Mantenha-o em um diretório seguro (ex:
/home/seu_usuario/scripts). - Teste sempre o script manualmente antes de agendá-lo.
- Monitore os logs do cron com
crontab -lou verifique o arquivo de log do sistema (ex:/var/log/syslog).
Quer mais? Vamos juntos!
Se você quiser, posso te ajudar a adaptar esse script para seu framework (ex: Laravel, WordPress, Node.js). É só me chamar no suporte da GeHost — estamos aqui para você.
Seu trabalho merece ser fácil. E com a automação, ele é.
Com carinho,
Sensei da GeHost
*Grupo: G e Soluções e Eventos LTDA (CNPJ: 46.647.904/0001-04)*