config/config.php was gitignored and devs had to copy it from config/config.php.example on every fresh clone. Since the bootstrap config reads everything from .env via $envString() / $envInt() / $envBool() defaults, there is nothing developer-specific in the file — the cp step was dead ceremony. - Remove config/config.php from .gitignore and track it directly - Delete config/config.php.example - Drop the example-existence + per-doc reference checks from bin/docs-drift-check.sh; add a legacy-pattern check that flags any new mention of the removed example file - Update ConfigContractsTest to require config.php and forbid the example - Clean stale references in CLAUDE.md, README.md, six docs files, and the core-guardrails skill Same commit slims README down from 294 to 47 lines: one setup checklist (now 3 commands instead of 4), the seeded login table, the three quality-gate commands, and pointers to CLAUDE.md and docs/index.md for everything else. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1.5 KiB
1.5 KiB
Docker lokal
Letzte Aktualisierung: 2026-04-01
Ziel
Diese Anleitung bringt die Anwendung lokal schnell und stabil zum Laufen.
Voraussetzungen
- Docker Desktop (oder Docker Engine + Compose)
- Port
8080(App) und8081(phpMyAdmin) sind frei - Nginx-only Setup:
.htaccesswird nicht ausgewertet
Start in 5 Schritten
- ENV-Datei anlegen:
cp .env.example .env
- Container bauen und starten:
docker compose up --build -d
-
Anwendung öffnen:
- App:
http://localhost:8080 - phpMyAdmin:
http://localhost:8081
- App:
-
Logs prüfen (optional):
docker compose logs -f nginx php
Security Header in Dev
Der lokale Nginx liefert bewusst dieselbe Security-Header-Baseline wie Produktion, mit einer Ausnahme:
- Kein
Strict-Transport-Security(HSTS) im Dev-HTTP-Setup.
Aktive Header in Dev:
X-Content-Type-Options: nosniffX-Frame-Options: SAMEORIGINReferrer-Policy: strict-origin-when-cross-originPermissions-Policy: camera=(), microphone=(), geolocation=(), payment=(), usb=()X-Permitted-Cross-Domain-Policies: none
Nützliche Befehle
Neustart:
docker compose restart nginx php
Stoppen:
docker compose down
Scheduler-Logs:
docker compose logs -f scheduler
Häufige lokale Probleme
- Änderungen werden nicht sichtbar:
docker compose restart nginx php
- Datenbank startet nicht:
- DB-Container-Logs prüfen:
docker compose logs -f db
- DB-Container-Logs prüfen:
- Port-Konflikt:
- in
docker-compose.ymllokale Port-Mappings anpassen
- in