Você está cansado de fazer upload manualmente do seu projeto Laravel para um servidor de produção toda vez que faz novas atualizações? Neste guia, você aprenderá a automatizar seu processo de deploy Laravel usando GitHub Actions — a ferramenta de CI/CD amigável para DevOps integrada ao GitHub.
Vamos otimizar seu fluxo de trabalho e fazer deploy da sua aplicação Laravel no seu VPS Hostinger (ou qualquer servidor acessível via SSH) com um simples git push.
✅ Por que usar GitHub Actions para deploy de Laravel?
Usar GitHub Actions permite que você:
- Automatize seu deploy para produção após cada push.
- Evite o uso de ferramentas FTP inseguras.
- Economize tempo e reduza erros humanos.
- Construa um pipeline CI/CD adequado como desenvolvedor Laravel.
🧠 Pré-requisitos
Antes de começar, certifique-se de ter:
- Um projeto Laravel hospedado no GitHub.
- Um VPS Hostinger ou plano de hospedagem com acesso SSH.
- Acesso ao terminal/linha de comando.
- Composer instalado no seu servidor.
🛠️ Passo 1: Gerar chave SSH e enviar para o Hostinger
- Gere uma chave SSH na sua máquina local:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Serão gerados dois arquivos:
~/.ssh/colorpark_hostinger(chave privada)~/.ssh/colorpark_hostinger.pub(chave pública)
- Adicione a chave pública ao Hostinger:
Vá para Hostinger → Avançado → Acesso SSH → Chaves SSH
Clique em Adicionar chave SSH, cole o conteúdo da chave pública de:
cat ~/.ssh/colorpark_hostinger.pub
- Salve o conteúdo da chave privada para adicionar como GitHub Secret depois:
cat ~/.ssh/colorpark_hostinger
🔐 Passo 2: Adicionar GitHub Secrets
No seu repositório GitHub:
Vá para: Settings → Secrets and variables → Actions → New repository secret
Adicione os seguintes secrets:
HOSTINGER_SSH_HOST='145.223.89.199' # IP do seu servidor
HOSTINGER_SSH_PORT='65002' # Sua porta SSH
HOSTINGER_SSH_USER='u597250090' # Seu usuário SSH
HOSTINGER_SSH_KEY='(cole o conteúdo da sua chave PRIVADA)'
DEPLOY_PATH='/home/u597250090/domains/example.com/public_html'
📁 Passo 3: Criar o Workflow do GitHub Actions
Dentro do seu projeto Laravel, crie o seguinte arquivo:
mkdir -p .github/workflows
touch .github/workflows/deploy.yml
Cole a seguinte configuração completa do deploy.yml:
name: 🚀 Deploy para Hostinger
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout do código
uses: actions/checkout@v3
- name: Configurar chave SSH
run: |
mkdir -p ~/.ssh
echo "${{ secrets.HOSTINGER_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -p ${{ secrets.HOSTINGER_SSH_PORT }} ${{ secrets.HOSTINGER_SSH_HOST }} >> ~/.ssh/known_hosts
- name: Deploy via rsync
run: |
rsync -avz --delete \
--exclude=".env" \
--exclude=".gitignore" \
-e "ssh -p ${{ secrets.HOSTINGER_SSH_PORT }}" \
./ ${{ secrets.HOSTINGER_SSH_USER }}@${{ secrets.HOSTINGER_SSH_HOST }}:${{ secrets.DEPLOY_PATH }}
- name: Comandos pós-deploy do Laravel
uses: appleboy/ssh-action@master
with:
host: ${{ secrets.HOSTINGER_SSH_HOST }}
username: ${{ secrets.HOSTINGER_SSH_USER }}
key: ${{ secrets.HOSTINGER_SSH_KEY }}
port: ${{ secrets.HOSTINGER_SSH_PORT }}
script: |
cd ${{ secrets.DEPLOY_PATH }}
composer install --no-dev --prefer-dist --no-interaction
php artisan optimize:clear
🚀 Passo 4: Faça push do seu código para iniciar o deploy
Assim que tudo estiver configurado, basta fazer push do seu projeto Laravel para a branch main:
git add .
git commit -m "🔧 Configurar GitHub Actions para deploy automático"
git push origin main
O GitHub acionará automaticamente o deploy. Você pode ver os logs na aba "Actions" do seu repositório GitHub.
✅ Dicas extras
- Certifique-se de que seu servidor tem as permissões de arquivo corretas.
- Sempre faça backup do seu
.enve banco de dados antes de executarphp artisan migrate --force. - Se usar hospedagem compartilhada, confirme se ela suporta login com chave SSH e composer.
📌 Considerações finais
Ao integrar GitHub Actions ao seu processo de deploy Laravel, você não está apenas economizando tempo — está construindo um fluxo de trabalho profissional que escala.
Chega de uploads manuais, chega de FTP. Apenas push e deploy. 🔥
Quer construir mais automações como esta?
👉 Siga para mais dicas de Laravel DevOps e tutoriais de desenvolvimento full-stack.