Files
kaffeekasse-saas/docs/dev-mysql.md
T
clemens b0e21bbb0a M3 Mailversand und Public-Landingpage vorbereiten
- Mail-Transport fuer Reset- und Verifizierungslinks ergaenzen
- Public-Landingpage mit Hero-Asset und App-CTAs bauen
- Mail-Flow-Test, Smoke-Abdeckung und SaaS-Doku aktualisieren
2026-07-13 20:38:01 +02:00

82 lines
2.5 KiB
Markdown

# Lokaler MySQL-Dev-Start
Die Legacy-App kann fuer Entwicklung gegen MySQL laufen. Dafuer gibt es eine
Kompatibilitaetsschicht, die die verwendeten `sqlsrv_*`-Funktionen im Dev-Modus
auf PDO/MySQL abbildet.
## Voraussetzungen
- PHP CLI mit `pdo_mysql`.
- MySQL-Testdatenbank.
- Keine Produktivdaten und keine Produktivpasswoerter im Repository.
In dieser VS-Code-Server-Umgebung wurde PHP lokal unter `.local/` entpackt,
weil `sudo` nicht passwordless verfuegbar war. `.local/` wird von Git ignoriert.
## Umgebungsvariablen
```bash
export APP_DB_DRIVER=mysql
export DB_HOST="example.mysql.host"
export DB_PORT="3306"
export DB_NAME="example_database"
export DB_USER="example_user"
export DB_PASS="example_password"
export DEV_AUTH_EMAIL="admin@test.local"
export DEV_AUTH_NAME="Test Admin"
# Optional: Standard ist var/sessions im Repository.
export APP_SESSION_PATH="/path/to/writable/sessions"
# Optional fuer Passwort-Reset und E-Mail-Verifikation.
export APP_BASE_URL="http://127.0.0.1:8080"
export APP_MAIL_TRANSPORT="log"
export APP_MAIL_LOG_DIR="/path/to/writable/mail-log"
export APP_MAIL_FROM="noreply@example.test"
export APP_MAIL_FROM_NAME="Kaffeeliste"
```
## Testdatenbank initialisieren
Migrationen anwenden:
```bash
php scripts/migrate.php
```
Dev-Admin und Basistestdaten anlegen:
```bash
php scripts/init-mysql-dev.php
```
In der aktuellen lokalen Umgebung:
```bash
LD_LIBRARY_PATH="$PWD/.local/php/usr/lib/x86_64-linux-gnu" \
"$PWD/.local/php/usr/bin/php8.3" \
-c "$PWD/.local/php-dev.ini" \
scripts/init-mysql-dev.php
```
## Server starten
```bash
HOST=127.0.0.1 PORT=8080 scripts/run-dev-server.sh
```
Danach ist die App unter `http://127.0.0.1:8080/` erreichbar. In VS Code kann
der Port ueber die Ports-Ansicht weitergeleitet werden.
## Hinweise
- Der Dev-Login umgeht AD/LDAP und nutzt `DEV_AUTH_EMAIL`.
- Der Dev-Mailversand nutzt standardmaessig `APP_MAIL_TRANSPORT=log` und legt
Nachrichten unter `var/mail` ab. Fuer Produktion kann zunaechst
`APP_MAIL_TRANSPORT=mail` mit passendem `APP_BASE_URL` und Absender gesetzt
werden; eine SMTP-/Provider-Anbindung bleibt ein spaeterer Betriebsausbau.
- Die Tabellen werden ueber `database/migrations/` angelegt.
- `database/mysql-dev-schema.sql` bleibt als historische Dev-Schema-Baseline
erhalten; der aktive Weg ist `scripts/migrate.php`.
- Session-Dateien liegen standardmaessig unter `var/sessions`; `var/` wird von
Git ignoriert.
- Der Dev-Modus ist nur fuer lokale Tests gedacht, nicht fuer Produktion.