Skip to main content
📝 Aplicações Laravel

Como fazer deploy de projetos Laravel para produção automaticamente usando GitHub Actions

Automatize deploys Laravel para produção com GitHub Actions. Configuração completa de pipeline CI/CD — do push ao ar em minutos, sem etapas manuais.

4 min

Tempo de leitura

670

Palavras

Apr 13, 2025

Publicado

Engr Mejba Ahmed

Escrito por

Engr Mejba Ahmed

Compartilhar Artigo

Como fazer deploy de projetos Laravel para produção automaticamente usando GitHub Actions

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:

  1. Um projeto Laravel hospedado no GitHub.
  2. Um VPS Hostinger ou plano de hospedagem com acesso SSH.
  3. Acesso ao terminal/linha de comando.
  4. Composer instalado no seu servidor.

🛠️ Passo 1: Gerar chave SSH e enviar para o Hostinger

  1. 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)
  1. 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
  1. 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 .env e banco de dados antes de executar php 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.

Publicidade
Coffee cup

Gostou deste artigo?

Seu apoio me ajuda a criar mais conteúdo técnico aprofundado, ferramentas open-source e recursos gratuitos para a comunidade de desenvolvedores.

Tópicos Relacionados

Engr Mejba Ahmed

Sobre o Autor

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 10+ years shipping production software in Laravel, Python, and AWS, he's helped companies automate workflows, reduce infrastructure costs, and scale without security headaches. He writes about practical AI integration, cloud architecture, and developer productivity.

Discussion

Comments

0

No comments yet

Be the first to share your thoughts

Leave a Comment

Your email won't be published

7  x  3  =  ?

Continue Aprendendo

Artigos Relacionados

Ver Todos

Comments

Leave a Comment

Comments are moderated before appearing.

Learning Resources

Expand Your Knowledge

Accelerate your growth with structured courses, verified certificates, interactive flashcards, and production-ready AI agent skills.

Sample Certificate of Completion

Sample certificate — complete any course to earn yours

Engr Mejba Ahmed

Engr Mejba Ahmed

Claude Code Expert · Online

👋

Hey there!

Quick Actions

WhatsApp Instant reply

Chat on WhatsApp

+880 1723 741224 · Instant reply

Popular Questions

Engr Mejba Ahmed is connected
Engr Mejba Ahmed is typing...
Engr Mejba Ahmed avatar

✉ Want me to follow up? Drop your email

Engr Mejba Ahmed avatar

📞 Connect Directly

Choose how you'd like to reach me

WhatsApp

+880 1723 741224

Email

[email protected]

✓ Details sent! I'll get back to you shortly.

Powered by OpenAI

335+

Blog Posts

25

AI Courses

63

Projects

Services & Expertise

Pricing & Process

Learning & Resources

Connect & Support