Erste Schritte
GitLab CI/CD
Alternative zu Schritt 1 der Installation. Die Pipeline in
.gitlab-ci.yml überträgt den Quellcode per rsync und
installiert die PHP-Abhängigkeiten.
Sie legt weder Datenbank noch Geheimnisse an. Diese Werte gehören nicht ins Repository
und werden wegen .rsync-exclude auch nicht übertragen.
Einmalig vor dem ersten Lauf
-
Datenbank und Datenbankbenutzer beim Hoster anlegen.
-
Das Zielverzeichnis für den Deployment-Benutzer zugänglich machen; es darf leer sein.
-
Im Zielverzeichnis eine produktive
.envanlegen. Mindestens:APP_ENV=production APP_DEBUG=false APP_URL=https://files.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> FILESHARE_ENCRYPTION_KEY=<base64-32-byte-schluessel> -
Die CI-Variablen setzen (Settings → CI/CD → Variables):
Variable Inhalt SERVER_USERBenutzer auf dem Zielserver SERVER_IPHost oder IP des Zielservers SERVER_PATHZielverzeichnis, etwa /var/www/fileshareSERVER_PORTSSH-Port SSH_PRIVATE_KEYTyp Variable, maskiert, Base64-kodierter privater Schlüssel SSH_KNOWN_HOSTSTyp File, Ausgabe von ssh-keyscan -p <port> <host>Den Host-Key vorab lokal ermitteln und prüfen, nie erst in der Pipeline per
ssh-keyscanbeziehen.
Was die Pipeline tut
Sie fragt die Anwendung selbst, ob am Ziel schon eingerichtet ist
(php artisan fileshare:installed, Exit-Code 0 oder 1). Eine vorhandene .env sagt nichts
darüber, ob je migriert wurde.
| Zustand des Ziels | Was passiert |
|---|---|
| eingerichtet | Wartungsmodus, Dateien übertragen, composer install, migrieren, Caches schreiben, Queue neu starten, Wartungsmodus beenden |
| frisch | Dateien übertragen, composer install — keine Migration, kein Cache. Der Job endet mit einer Handlungsaufforderung und wird als Warnung (orange) angezeigt |
Der frische Fall ist bewusst keine Fehlermeldung: Die Übertragung hat funktioniert, es
fehlt nur die Einrichtung. Danach einmal php artisan fileshare:install auf dem Server
oder /install im Browser; jedes weitere Deployment läuft den vollständigen Weg.
Vor dem Übertragen prüft die Pipeline, ob das Zielverzeichnis beschreibbar ist und ob php
(mindestens 8.3) und composer im PATH liegen.
APP_KEY und FILESHARE_ENCRYPTION_KEY nach dem ersten Produktiveinsatz nicht neu
erzeugen — siehe Konfiguration.
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.