reorder folders for easy 1:1 upload to boogie server

This commit is contained in:
Robert Wartenberg committed 2026-08-31 11:40:54 +02:00
1 parent de5895f558
commit 6c16e16354
20 files changed
+171 -52

No files matched your search

+45 -22
View File
@@ -58,7 +58,11 @@ http://localhost:8080/perspektivwerk/
Die genaue Contao-, PHP- und Template-Version der öffentlichen Seite ist nicht verlässlich aus dem ausgelieferten HTML ableitbar. Das Setup bildet daher die wahrscheinlichste Komponentenfamilie nach; es ist kein Dump der Produktivinstallation. IONOS/Hosting, Matomo-Konfiguration, Inhalte, Templates und Erweiterungen müssen bei Bedarf separat ergänzt werden.
Die Terminlogik liegt in `public/booking/booking.js` als browsernatives ES-Modul. Für die statische Perspektivwerk-Vorschau liegen identische Kopien unter `public/perspektivwerk/js/`.
Der vollständige, statisch auslieferbare Perspektivwerk-DocumentRoot liegt in
`public/perspektivwerk/`. Er enthält die Buchungs-API unter `booking/` und die
Verwaltung unter `booking-admin/`. Die Vorschau verwendet relative API-URLs und
funktioniert dadurch lokal unter `/perspektivwerk/` sowie auf dem Server direkt
im DocumentRoot.
Für einen einfachen Upload der vollständigen statischen Mockup-Seite auf den
Testserver steht unter Windows dieses Skript bereit:
@@ -67,17 +71,27 @@ Testserver steht unter Windows dieses Skript bereit:
scripts\Deploy-Perspektivwerk.bat
```
Es überträgt `public\perspektivwerk\*` rekursiv nach
`boogie:/html/perspektivwerk/`. Voraussetzung ist ein konfigurierter
OpenSSH-Zugang mit dem Host-Alias `boogie`.
Es überträgt den vollständigen Ordner `public\perspektivwerk` und dessen
benachbarte Konfigurationsdatei `public\booking-config.php` nach
`boogie:html/perspektivwerk/`. Damit entsteht der Server-DocumentRoot unter
`html/perspektivwerk/perspektivwerk/`; die Konfigurationsdatei liegt eine Ebene
darüber und damit außerhalb des DocumentRoots. Anschließend setzt es per SSH
lesbare Dateien und durchsuchbare Verzeichnisse.
Vor dem ersten Upload `public\booking-config.php.example` nach
`public\booking-config.php` kopieren und dort die Produktiv-`database_url`
eintragen. Die echte Konfigurationsdatei ist von Git ausgeschlossen; sie wird
bei fehlender oder leerer PHP-Umgebungsvariable `DATABASE_URL` verwendet. Die
mit übertragene `.htaccess` verweigert den HTTP-Zugriff auf diese Datei.
Voraussetzung ist ein konfigurierter OpenSSH-Zugang mit dem Host-Alias
`boogie`.
## Datenbankgestützte Buchungsdemo
Die Buchungsdemo lädt ihre Termine aus MariaDB und speichert eine Anmeldung
über `public/booking/api.php`. Die API wird unabhängig von Contao direkt durch
Apache ausgeliefert, verwendet aber dieselbe `DATABASE_URL` wie Contao. Dadurch
funktioniert sie aus der Vorschau `/perspektivwerk/` und aus dem Contao-
HTML-Element gleichermaßen.
über `public/perspektivwerk/booking/api.php`. Die API wird unabhängig von
Contao direkt durch Apache ausgeliefert. In der statischen Vorschau liegt sie
relativ unter `/perspektivwerk/booking/api.php`.
Vor dem ersten Aufruf müssen die externen Migrationen eingespielt werden:
@@ -156,7 +170,7 @@ nach 30 Minuten ab.
## Eigenständiges PHP-Backend
Die Testverwaltung läuft unabhängig von Contao unter
<http://localhost:8080/booking-admin/>. Sie bietet für PW und PS:
<http://localhost:8080/perspektivwerk/booking-admin/>. Sie bietet für PW und PS:
- Termin anlegen, bearbeiten sowie aktivieren/deaktivieren,
- Übersicht und Entfernen von Teilnahmen,
@@ -215,34 +229,43 @@ 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 Termin- und Kapazitätsdaten kommen aus `/booking/api.php`; Datenbankzugänge
oder SQL gehören niemals in das HTML oder das Browser-JavaScript.
Die Termin- und Kapazitätsdaten kommen in der statischen Vorschau aus
`/perspektivwerk/booking/api.php`; Datenbankzugänge oder SQL gehören niemals in
das HTML oder das Browser-JavaScript.
`public/perspektivwerk/js/booking.js` und die zugehörige CSS-Datei sind die für
den statischen Upload bestimmte Kopie. Ein Test stellt sicher, dass beide
Asset-Paare gleich bleiben. Nach Änderungen können sie lokal synchronisiert
werden mit:
```powershell
Copy-Item public\booking\booking.js public\perspektivwerk\js\booking.js -Force
Copy-Item public\booking\booking.css public\perspektivwerk\js\booking.css -Force
Copy-Item public\perspektivwerk\booking\booking.js public\perspektivwerk\js\booking.js -Force
Copy-Item public\perspektivwerk\booking\booking.css public\perspektivwerk\js\booking.css -Force
```
Der vorhandene SCP-Upload überträgt weiterhin nur die statische
Perspektivwerk-Seite. Für einen externen Einsatz der Buchungsdemo müssen
zusätzlich `/booking/api.php`, die Migrationen und die sichere
`DATABASE_URL`-Konfiguration auf dem Zielserver bereitgestellt werden.
Der vorhandene SCP-Upload überträgt den vollständigen statischen
Perspektivwerk-DocumentRoot einschließlich Buchungsdemo. Vor dem externen
Einsatz müssen die Migrationen eingespielt und `booking-config.php` mit einer
sicheren Datenbank-URL befüllt sein.
## 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.
Das Skript [scripts/Deploy-Perspektivwerk.bat](scripts/Deploy-Perspektivwerk.bat) überträgt den Ordner `public/perspektivwerk/` als vollständigen DocumentRoot per SCP und korrigiert anschließend die Lesbarkeit auf dem Server per SSH. Es lädt weder Contao noch Datenbank-Migrationen hoch.
```powershell
.\scripts\Deploy-Perspektivwerk.ps1
```bat
scripts\Deploy-Perspektivwerk.bat
```
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.
Der Hostname `boogie` wird aus der lokalen SSH-Konfiguration verwendet. Der
Ordner landet unter `/home/boogie/html/perspektivwerk/perspektivwerk/`; die
Konfiguration liegt daneben unter `/home/boogie/html/perspektivwerk/booking-config.php`.
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.
Vor dem Upload muss die ignorierte `booking-config.php` befüllt sein. 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