feat: add deploy script for boogie

This commit is contained in:
Robert Wartenberg committed 2026-08-20 13:56:22 +02:00
1 parent 76e45ac9ad
commit 6dcc315d25
2 files changed
+56

No files matched your search

+11
View File
@@ -94,6 +94,17 @@ Contao maskiert nicht freigegebene HTML-Tags auch im Inhaltselement **HTML**. Vo
Danach den Contao-Cache über **Systemwartung** leeren und das Inhaltselement erneut speichern. Keine globale Freigabe mit `*` verwenden. Wer ein HTML-Inhaltselement bearbeiten darf, kann mit dem freigegebenen `script`-Tag JavaScript auf der Website ausführen; diese Bearbeitungsrechte müssen daher auf vertrauenswürdige Backend-Nutzer beschränkt bleiben. Danach den Contao-Cache über **Systemwartung** leeren und das Inhaltselement erneut speichern. Keine globale Freigabe mit `*` verwenden. Wer ein HTML-Inhaltselement bearbeiten darf, kann mit dem freigegebenen `script`-Tag JavaScript auf der Website ausführen; diese Bearbeitungsrechte müssen daher auf vertrauenswürdige Backend-Nutzer beschränkt bleiben.
Die Beispieltermine stehen ausschließlich in `public/booking/booking.js`. Der spätere serverseitige Endpunkt muss sie ersetzen; Datenbankzugänge oder SQL gehören niemals in das HTML oder das Browser-JavaScript. Die Beispieltermine stehen ausschließlich in `public/booking/booking.js`. Der spätere serverseitige Endpunkt muss sie ersetzen; Datenbankzugänge oder SQL gehören niemals in das HTML oder das Browser-JavaScript.
## Statische Perspektivwerk-Seite übertragen
Das Skript [scripts/Deploy-Perspektivwerk.ps1](scripts/Deploy-Perspektivwerk.ps1) überträgt ausschließlich den Inhalt von `public/perspektivwerk/` per SCP und korrigiert anschließend die Lesbarkeit auf dem Server per SSH. Dieser Ordner enthält auch `js/booking.js` und `js/booking.css`. Es lädt weder Contao noch die Datenbank oder andere Projektdateien hoch.
```powershell
.\scripts\Deploy-Perspektivwerk.ps1
```
Der Hostname `boogie` wird aus der lokalen SSH-Konfiguration verwendet. Der vollständige Inhalt wird per SCP-Aufruf nach `/home/boogie/html/perspektivwerk/` übertragen. Anschließend führt ein separater SSH-Aufruf `chmod -R a+rX /home/boogie/html/perspektivwerk` aus. Die Passphrase des SSH-Schlüssels wird daher in der Regel zweimal abgefragt.
Vor dem Upload gibt das Skript den vollständigen Zielpfad aus. Damit lässt sich direkt prüfen, ob `booking.js` unter `/home/boogie/html/perspektivwerk/js/booking.js` landet. Das große `X` in `a+rX` setzt das Ausführungsrecht nur auf Verzeichnissen und auf bereits ausführbaren Dateien; normale HTML-, CSS- und JavaScript-Dateien erhalten kein unnötiges Ausführungsbit.
## Versionierter Contao-Seitenzustand ## Versionierter Contao-Seitenzustand
@@ -0,0 +1,45 @@
[CmdletBinding()]
param()
$ErrorActionPreference = 'Stop'
$projectRoot = Split-Path -Parent $PSScriptRoot
$perspektivwerkSource = Join-Path $projectRoot 'public/perspektivwerk'
$remoteTarget = 'boogie:/home/boogie/html/perspektivwerk/'
if (-not (Test-Path -LiteralPath $perspektivwerkSource -PathType Container)) {
throw "Der zu übertragende Ordner '$perspektivwerkSource' wurde nicht gefunden."
}
$sourceItems = @(Get-ChildItem -LiteralPath $perspektivwerkSource -Force)
if ($sourceItems.Count -eq 0) {
throw "Der zu übertragende Ordner '$perspektivwerkSource' enthält keine Dateien."
}
if (-not (Get-Command scp -ErrorAction SilentlyContinue)) {
throw 'OpenSSH scp wurde nicht gefunden. Installiere den OpenSSH-Client oder füge ihn zum PATH hinzu.'
}
if (-not (Get-Command ssh -ErrorAction SilentlyContinue)) {
throw 'OpenSSH ssh wurde nicht gefunden. Installiere den OpenSSH-Client oder füge ihn zum PATH hinzu.'
}
Write-Host 'Zielverzeichnisse auf dem Server:'
Write-Host " $perspektivwerkSource\* -> $remoteTarget"
Write-Host "Übertrage ausschließlich die statische Perspektivwerk-Seite nach $remoteTarget"
Write-Host 'SCP-Upload und anschließende Rechtekorrektur benötigen jeweils eine SSH-Verbindung.'
& scp -r @sourceItems $remoteTarget
if ($LASTEXITCODE -ne 0) {
throw "Der Upload nach '$remoteTarget' ist fehlgeschlagen (scp Exit-Code $LASTEXITCODE)."
}
Write-Host 'Setze Lese- und Durchsuchrechte auf dem hochgeladenen Ordner.'
& ssh boogie 'chmod -R a+rX /home/boogie/html/perspektivwerk'
if ($LASTEXITCODE -ne 0) {
throw "Der Upload war erfolgreich, aber die Rechtekorrektur ist fehlgeschlagen (ssh Exit-Code $LASTEXITCODE)."
}
Write-Host 'Upload und Rechtekorrektur abgeschlossen: /home/boogie/html/perspektivwerk/ (inklusive js/booking.js).'