Erste Schritte
GitLab CI/CD
Alternative zu Schritt 1 der Installation. Die Pipeline überträgt Quellcode, PHP-Abhängigkeiten und gebaute Assets — sie legt keine Datenbank und keine Geheimnisse an.
Einmalig, vor dem ersten Lauf
-
Datenbank und Datenbankbenutzer anlegen.
-
Zielverzeichnis für den Deployment-Benutzer zugänglich machen. Es darf leer sein.
-
Im Zielverzeichnis eine produktive
.envanlegen:APP_ENV=production APP_DEBUG=false APP_URL=https://go.example.org APP_KEY=base64:<zufaelliger-32-byte-schluessel> DB_CONNECTION=mysql DB_HOST=<datenbank-host> DB_PORT=3306 DB_DATABASE=<datenbankname> DB_USERNAME=<datenbankbenutzer> DB_PASSWORD=<datenbankpasswort> -
GitLab-Variablen setzen:
Variable Art SSH_PRIVATE_KEYmaskiert, Base64-kodiert SSH_KNOWN_HOSTSFile-Variable, Host-Key vorab lokal ermittelt und geprüft SERVER_USER,SERVER_IP,SERVER_PATHSERVER_PORTfalls abweichend
APP_KEY nach dem ersten Produktiveinsatz nicht neu erzeugen — sonst sind gespeicherte
Sitzungen und das in der Datenbank abgelegte SMTP-Passwort nicht mehr lesbar.
Was die Pipeline je nach Zustand tut
Sie ermittelt den Zustand über php artisan shortlink:installed (Exit-Code 0 oder 1).
| Zustand | Ablauf |
|---|---|
| eingerichtet | Wartungsmodus, Dateien übertragen, composer install, migrieren, Caches schreiben, Wartungsmodus beenden |
| frisch | Dateien übertragen, composer install. Keine Migration, kein Cache. Der Job endet als Warnung (orange) mit einer Handlungsaufforderung |
Nach dem frischen Fall einmalig php artisan shortlink:install auf dem Server oder
/install im Browser ausführen. Jedes weitere Deployment läuft dann den vollständigen Weg.
Der erste erfolgreiche Lauf führt die Migrationen aus und setzt den Symlink
public/storage, wenn er noch fehlt.
Vor dem Übertragen prüft die Pipeline, ob das Zielverzeichnis beschreibbar ist und ob php
(mindestens 8.4.1) und composer im PATH liegen.
.env, storage/ und vendor/ bleiben bei jedem Deployment erhalten
(.rsync-exclude).
Quelle dieser Seite:
docs/installation/pipeline.md
im Repository. Sie wird beim Bauen daraus erzeugt — Änderungen gehören in die
Markdown-Datei, nicht in diese Seite.