Vous en avez assez de télécharger manuellement votre projet Laravel sur un serveur de production à chaque mise à jour ? Dans ce guide, vous apprendrez à automatiser votre processus de déploiement Laravel avec GitHub Actions — l'outil CI/CD intégré à GitHub, conçu pour le DevOps.
Optimisons votre flux de travail et déployez votre application Laravel sur votre VPS Hostinger (ou tout serveur accessible via SSH) avec un simple git push.
✅ Pourquoi utiliser GitHub Actions pour le déploiement Laravel ?
Utiliser GitHub Actions vous permet de :
- Automatiser votre déploiement en production après chaque push.
- Éviter l'utilisation d'outils FTP non sécurisés.
- Gagner du temps et réduire les erreurs humaines.
- Construire un véritable pipeline CI/CD en tant que développeur Laravel.
🧠 Prérequis
Avant de commencer, assurez-vous d'avoir :
- Un projet Laravel hébergé sur GitHub.
- Un VPS Hostinger ou un hébergement web avec accès SSH.
- Accès au terminal/ligne de commande.
- Composer installé sur votre serveur.
🛠️ Étape 1 : Générer une clé SSH et la télécharger sur Hostinger
- Générez une clé SSH sur votre machine locale :
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Cela générera deux fichiers :
~/.ssh/colorpark_hostinger(clé privée)~/.ssh/colorpark_hostinger.pub(clé publique)
- Ajoutez la clé publique à Hostinger :
Allez dans Hostinger → Avancé → Accès SSH → Clés SSH
Cliquez sur Ajouter une clé SSH, collez le contenu de la clé publique depuis :
cat ~/.ssh/colorpark_hostinger.pub
- Sauvegardez le contenu de la clé privée pour l'ajouter comme GitHub Secret plus tard :
cat ~/.ssh/colorpark_hostinger
🔐 Étape 2 : Ajouter les GitHub Secrets
Dans votre dépôt GitHub :
Allez dans : Settings → Secrets and variables → Actions → New repository secret
Ajoutez les secrets suivants :
HOSTINGER_SSH_HOST='145.223.89.199' # IP de votre serveur
HOSTINGER_SSH_PORT='65002' # Votre port SSH
HOSTINGER_SSH_USER='u597250090' # Votre nom d'utilisateur SSH
HOSTINGER_SSH_KEY='(collez le contenu de votre clé PRIVÉE)'
DEPLOY_PATH='/home/u597250090/domains/example.com/public_html'
📁 Étape 3 : Créer le Workflow GitHub Actions
Dans votre projet Laravel, créez le fichier suivant :
mkdir -p .github/workflows
touch .github/workflows/deploy.yml
Collez la configuration complète de deploy.yml suivante :
name: 🚀 Déployer sur Hostinger
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Récupérer le code
uses: actions/checkout@v3
- name: Configurer la clé 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: Déployer 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: Commandes post-déploiement 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
🚀 Étape 4 : Poussez votre code pour déclencher le déploiement
Une fois tout configuré, poussez simplement votre projet Laravel vers la branche main :
git add .
git commit -m "🔧 Configurer GitHub Actions pour le déploiement automatique"
git push origin main
GitHub déclenchera automatiquement le déploiement. Vous pouvez consulter les logs dans l'onglet "Actions" de votre dépôt GitHub.
✅ Conseils bonus
- Assurez-vous que votre serveur a les bonnes permissions de fichiers.
- Sauvegardez toujours votre
.envet votre base de données avant d'exécuterphp artisan migrate --force. - Si vous utilisez un hébergement mutualisé, vérifiez qu'il prend en charge la connexion par clé SSH et composer.
📌 Réflexions finales
En intégrant GitHub Actions dans votre processus de déploiement Laravel, vous ne gagnez pas seulement du temps — vous construisez un workflow professionnel qui évolue.
Plus de téléchargements manuels, plus de FTP. Juste push et déployer. 🔥
Vous voulez créer plus d'automatisations comme celle-ci ?
👉 Suivez-nous pour plus de conseils Laravel DevOps et de tutoriels développeur full-stack.