Skip to main content
Aplicaciones Laravel

Cómo desplegar proyectos Laravel en producción automáticamente usando GitHub Actions

Automatiza despliegues de Laravel a producción con GitHub Actions. Configuración completa de pipeline CI/CD — de push a producción en minutos, sin pasos manuales.

4 min
Tiempo de lectura
673
Palabras
Publicado
Última revisión
Engr Mejba Ahmed

Escrito por

Engr Mejba Ahmed

Compartir Artículo

Cómo desplegar proyectos Laravel en producción automáticamente usando GitHub Actions

¿Estás cansado de subir manualmente tu proyecto Laravel a un servidor de producción cada vez que haces nuevas actualizaciones? En esta guía, aprenderás a automatizar tu proceso de despliegue de Laravel usando GitHub Actions — la herramienta de CI/CD amigable con DevOps integrada en GitHub.

Optimicemos tu flujo de trabajo y despliega tu app Laravel en tu VPS de Hostinger (o cualquier servidor accesible por SSH) con un simple git push.

✅ ¿Por qué usar GitHub Actions para despliegue de Laravel?

Usar GitHub Actions te permite:

  • Automatizar tu despliegue a producción después de cada push.
  • Evitar el uso de herramientas FTP inseguras.
  • Ahorrar tiempo y reducir errores humanos.
  • Construir un pipeline CI/CD adecuado como desarrollador Laravel.

🧠 Requisitos previos

Antes de comenzar, asegúrate de tener:

  1. Un proyecto Laravel alojado en GitHub.
  2. Un VPS de Hostinger o plan de hosting web con acceso SSH.
  3. Acceso a la terminal/línea de comandos.
  4. Composer instalado en tu servidor.

🛠️ Paso 1: Generar clave SSH y subirla a Hostinger

  1. Genera una clave SSH en tu máquina local:
ssh-keygen -t rsa -b 4096 -C "github-actions@example.com"

Generará dos archivos:

  • ~/.ssh/colorpark_hostinger (clave privada)
  • ~/.ssh/colorpark_hostinger.pub (clave pública)
  1. Añade la clave pública a Hostinger:

Ve a Hostinger → Avanzado → Acceso SSH → Claves SSH Haz clic en Añadir clave SSH, pega el contenido de la clave pública desde:

cat ~/.ssh/colorpark_hostinger.pub
  1. Guarda el contenido de la clave privada para añadirlo como GitHub Secret más adelante:
cat ~/.ssh/colorpark_hostinger

🔐 Paso 2: Añadir GitHub Secrets

En tu repositorio de GitHub:

Ve a: Settings → Secrets and variables → Actions → New repository secret

Añade los siguientes secrets:

HOSTINGER_SSH_HOST='145.223.89.199'      # IP de tu servidor
HOSTINGER_SSH_PORT='65002'               # Tu puerto SSH
HOSTINGER_SSH_USER='u597250090'          # Tu usuario SSH
HOSTINGER_SSH_KEY='(pega el contenido de tu clave PRIVADA)'
DEPLOY_PATH='/home/u597250090/domains/example.com/public_html'

📁 Paso 3: Crear el Workflow de GitHub Actions

Dentro de tu proyecto Laravel, crea el siguiente archivo:

mkdir -p .github/workflows
touch .github/workflows/deploy.yml

Pega la siguiente configuración completa de deploy.yml:

name: 🚀 Desplegar en Hostinger

on:
  push:
    branches:
      - main

jobs:
  deploy:
    runs-on: ubuntu-latest

    steps:
      - name: Obtener código
        uses: actions/checkout@v3

      - name: Configurar clave 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: Desplegar 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 post-despliegue de 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

🚀 Paso 4: Haz push de tu código para iniciar el despliegue

Una vez que todo esté configurado, simplemente haz push de tu proyecto Laravel a la rama main:

git add .
git commit -m "🔧 Configurar GitHub Actions para despliegue automático"
git push origin main

GitHub iniciará automáticamente el despliegue. Puedes ver los logs en la pestaña "Actions" de tu repositorio de GitHub.


✅ Consejos adicionales

  • Asegúrate de que tu servidor tenga los permisos de archivo correctos.
  • Siempre haz respaldo de tu .env y base de datos antes de ejecutar php artisan migrate --force.
  • Si usas hosting compartido, confirma si soporta inicio de sesión con clave SSH y composer.

📌 Reflexiones finales

Al integrar GitHub Actions en tu proceso de despliegue de Laravel, no solo ahorras tiempo — estás construyendo un flujo de trabajo profesional que escala.

No más subidas manuales, no más FTP. Solo push y despliegue. 🔥


¿Quieres construir más automatizaciones como esta?

👉 Síguenos para más trucos de Laravel DevOps y tutoriales de desarrollo full-stack.

Publicidad
Coffee cup

¿Te gustó este artículo?

Tu apoyo me ayuda a crear más contenido técnico detallado, herramientas de código abierto y recursos gratuitos para la comunidad de desarrolladores.

Temas Relacionados

Engr Mejba Ahmed

Engr Mejba Ahmed

Engr. Mejba Ahmed builds AI-powered applications and secure cloud systems for businesses worldwide. With 8+ 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.

Artículos 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

AI assistant · trained on my work

👋

Hey there!

Quick Actions

WhatsApp Direct line to me

Chat on WhatsApp

+880 1723 741224 · Replies within the hour on working days

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

mejba.13@gmail.com

✓ 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