72 lines
3.0 KiB
Markdown
72 lines
3.0 KiB
Markdown
# Perspektivwerk Terminbuchung – lokales Entwicklungssystem
|
||
|
||
Dieser Ordner enthält eine lokale Contao-4.13.58-Entwicklungsumgebung mit Apache, MariaDB sowie die im Frontend verbreiteten Komponenten Bootstrap 5, jQuery und Slick Carousel.
|
||
|
||
## Contao-Version und Sicherheitsstatus
|
||
|
||
Die Abhängigkeiten sind auf `contao/manager-bundle` und `contao/core-bundle` in Version `4.13.58` festgelegt. `composer.lock` ist Teil des Repositorys und muss bei Änderungen mit eingecheckt werden.
|
||
|
||
Contao 4.13.58 ist ausschließlich als lokale Kompatibilitätsumgebung vorgesehen. In `composer.json` ist die Advisory `PKSA-f8tt-pn3h-s2tw` gezielt dokumentiert und für Composer freigegeben, weil keine neuere 4.13-Version verfügbar ist. Ein `composer audit` meldet darüber hinaus historische Abhängigkeitswarnungen; diese Umgebung darf deshalb nicht unverändert produktiv eingesetzt werden.
|
||
|
||
## Start
|
||
|
||
Voraussetzungen: Docker Desktop (Compose v2) und optional Node.js 20+ für die TypeScript-Assets.
|
||
|
||
```powershell
|
||
docker compose up --build
|
||
```
|
||
|
||
Beim ersten Start eines frischen Clones erzeugt Contao die benötigten Laufzeitverzeichnisse und Asset-Symlinks. Danach einmalig ausführen:
|
||
|
||
```powershell
|
||
docker compose exec app vendor/bin/contao-setup --no-interaction --env=dev
|
||
docker compose exec app chown -R www-data:www-data var public system files
|
||
docker compose exec app vendor/bin/contao-console contao:migrate --no-interaction
|
||
|
||
Neuen Admin-Account anlegen:
|
||
|
||
```powershell
|
||
docker compose exec app vendor/bin/contao-console contao:user:create --admin
|
||
```
|
||
|
||
Danach den versionierten Seitenzustand importieren:
|
||
|
||
```powershell
|
||
.\scripts\Import-ContaoBaseline.ps1
|
||
```
|
||
|
||
- Website/CMS: <http://localhost:8080>
|
||
- Contao-Login: <http://localhost:8080/contao/login>
|
||
- Datenbankinspektor: <http://localhost:8081> (Server `db`, Benutzer `perspektivwerk`, Passwort `perspektivwerk`, Datenbank `perspektivwerk`)
|
||
|
||
Für die Frontend-Logik:
|
||
|
||
```powershell
|
||
npm install
|
||
npm run build
|
||
```
|
||
|
||
**Seite öffnen:**
|
||
|
||
Frontend: http://localhost:8080/default
|
||
Backend: http://localhost:8080/contao
|
||
|
||
|
||
## HTML Nachbau der Perpektivwerkseite
|
||
|
||
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 zunächst in `src/booking.ts`. Eine spätere Google-Calendar- oder Exchange-Anbindung sollte über eine Backend-API erfolgen, damit keine Secrets im Browser landen.
|
||
|
||
## Versionierter Contao-Seitenzustand
|
||
|
||
Die Contao-Seiten, Artikel und Layouts liegen in MariaDB und werden deshalb zusätzlich als bereinigter SQL-Seed versioniert. Details zu Export, Import und den bewusst ausgeschlossenen Daten stehen in [database/README.md](database/README.md).
|
||
|
||
Die Seed-Integritätsprüfungen ausführen:
|
||
|
||
```powershell
|
||
Invoke-Pester .\tests\ContaoBaseline.Tests.ps1
|
||
```
|