Sind Sie es leid, Ihr Laravel-Projekt bei jedem Update manuell auf einen Produktionsserver hochzuladen? In diesem Leitfaden erfahren Sie, wie Sie Ihren Laravel-Deployment-Prozess mit GitHub Actions automatisieren — dem DevOps-freundlichen CI/CD-Tool, das in GitHub integriert ist.
Lassen Sie uns Ihren Workflow optimieren und Ihre Laravel-App mit einem einzigen git push auf Ihrem Hostinger VPS (oder jedem SSH-zugänglichen Server) bereitstellen.
✅ Warum GitHub Actions für Laravel-Deployment verwenden?
Mit GitHub Actions können Sie:
- Ihr Produktions-Deployment nach jedem Push automatisieren.
- Die Verwendung unsicherer FTP-Tools vermeiden.
- Zeit sparen und menschliche Fehler reduzieren.
- Eine professionelle CI/CD-Pipeline als Laravel-Entwickler aufbauen.
🧠 Voraussetzungen
Stellen Sie vor dem Start sicher, dass Sie Folgendes haben:
- Ein Laravel-Projekt auf GitHub gehostet.
- Einen Hostinger VPS oder Webhosting-Plan mit SSH-Zugang.
- Zugang zum Terminal/Befehlszeile.
- Composer auf Ihrem Server installiert.
🛠️ Schritt 1: SSH-Schlüssel generieren und bei Hostinger hochladen
- SSH-Schlüssel generieren auf Ihrem lokalen Rechner:
ssh-keygen -t rsa -b 4096 -C "[email protected]"
Es werden zwei Dateien generiert:
~/.ssh/colorpark_hostinger(privater Schlüssel)~/.ssh/colorpark_hostinger.pub(öffentlicher Schlüssel)
- Fügen Sie den öffentlichen Schlüssel bei Hostinger hinzu:
Gehen Sie zu Hostinger → Erweitert → SSH-Zugang → SSH-Schlüssel
Klicken Sie auf SSH-Schlüssel hinzufügen, fügen Sie den Inhalt des öffentlichen Schlüssels ein:
cat ~/.ssh/colorpark_hostinger.pub
- Speichern Sie den Inhalt des privaten Schlüssels, um ihn später als GitHub Secret hinzuzufügen:
cat ~/.ssh/colorpark_hostinger
🔐 Schritt 2: GitHub Secrets hinzufügen
In Ihrem GitHub-Repository:
Gehen Sie zu: Settings → Secrets and variables → Actions → New repository secret
Fügen Sie folgende Secrets hinzu:
HOSTINGER_SSH_HOST='145.223.89.199' # Ihre Server-IP
HOSTINGER_SSH_PORT='65002' # Ihr SSH-Port
HOSTINGER_SSH_USER='u597250090' # Ihr SSH-Benutzername
HOSTINGER_SSH_KEY='(fügen Sie Ihren PRIVATEN Schlüssel ein)'
DEPLOY_PATH='/home/u597250090/domains/example.com/public_html'
📁 Schritt 3: GitHub Actions Workflow erstellen
Erstellen Sie in Ihrem Laravel-Projekt folgende Datei:
mkdir -p .github/workflows
touch .github/workflows/deploy.yml
Fügen Sie folgende vollständige deploy.yml-Konfiguration ein:
name: 🚀 Deploy zu Hostinger
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Code auschecken
uses: actions/checkout@v3
- name: SSH-Schlüssel einrichten
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: Deployment 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: Laravel Post-Deploy-Befehle
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
🚀 Schritt 4: Code pushen, um Deployment auszulösen
Sobald alles eingerichtet ist, pushen Sie Ihr Laravel-Projekt zum main-Branch:
git add .
git commit -m "🔧 GitHub Actions für automatisches Deployment konfigurieren"
git push origin main
GitHub löst automatisch das Deployment aus. Sie können die Logs unter dem Tab "Actions" Ihres GitHub-Repos einsehen.
✅ Bonustipps
- Stellen Sie sicher, dass Ihr Server die richtigen Dateiberechtigungen hat.
- Sichern Sie immer Ihre
.env-Datei und Datenbank, bevor Siephp artisan migrate --forceausführen. - Bei Shared Hosting prüfen Sie, ob SSH-Schlüssel-Login und Composer unterstützt werden.
📌 Abschließende Gedanken
Durch die Integration von GitHub Actions in Ihren Laravel-Deployment-Prozess sparen Sie nicht nur Zeit — Sie bauen einen professionellen Workflow auf, der skaliert.
Keine manuellen Uploads mehr, kein FTP mehr. Einfach pushen und deployen. 🔥
Möchten Sie mehr solche Automatisierungen erstellen?
👉 Folgen Sie für weitere Laravel DevOps-Tipps und Full-Stack-Developer-Tutorials.