feat: add deploy script for boogie
This commit is contained in:
1 parent
76e45ac9ad
commit
6dcc315d25
2 files changed
+56
No files matched your search
@@ -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.
|
||||
|
||||
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
|
||||
|
||||
|
||||
@@ -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).'
|
||||
Reference in new issue
Block a user