Input-Text geht, CORS behoben
This commit is contained in:
115
README.md
115
README.md
@@ -1,28 +1,83 @@
|
||||
# Rezepte - Docker Setup
|
||||
# Rezepte - Docker & Modern Stack
|
||||
|
||||
Eine dockerisierte Version der Rezepte-Verwaltungsanwendung mit PHP, MySQL und phpMyAdmin.
|
||||
Dieses Repository enthält zwei Welten: den modernen Node.js / React Stack sowie die historische PHP Legacy-App. Über Docker Compose Profile kannst du gezielt nur die benötigten Teile starten.
|
||||
|
||||
## Komponenten
|
||||
## Services & Ports
|
||||
|
||||
- **PHP-App**: Rezepte-Anwendung (Port 8082)
|
||||
- **MySQL**: Datenbankserver (Port 3307)
|
||||
- **phpMyAdmin**: Datenbankadministration (Port 8083)
|
||||
| Service | Profil | Port Host -> Container | Beschreibung |
|
||||
|--------------|-----------|------------------------|--------------|
|
||||
| mysql | default | 3307 -> 3306 | MySQL 8 Datenbank |
|
||||
| backend | default | 3001 -> 3001 | Node.js API (Express + Prisma) |
|
||||
| frontend | default | 3000 -> 80 | React Build via nginx |
|
||||
| php-app | legacy | 8082 -> 80 | Altes PHP Frontend |
|
||||
| phpmyadmin | admin | 8083 -> 80 | DB Verwaltung |
|
||||
|
||||
## Schnellstart
|
||||
## Node / Modern Stack
|
||||
Empfohlene Node Version: **22.12.0** (`.nvmrc`, `.tool-versions`).
|
||||
|
||||
1. **Docker starten:**
|
||||
```bash
|
||||
docker-compose up -d
|
||||
```
|
||||
Lokal ohne Docker (Entwicklung Hot Reload):
|
||||
```bash
|
||||
nvm use
|
||||
cd backend && npm install && npm run dev # startet API auf :3001
|
||||
cd ../frontend && npm install && npm run dev # startet Vite auf :5173
|
||||
```
|
||||
|
||||
2. **Anwendung öffnen:**
|
||||
- Rezepte-App: http://localhost:8082
|
||||
- phpMyAdmin: http://localhost:8083
|
||||
## Docker Nutzung
|
||||
|
||||
3. **Container stoppen:**
|
||||
```bash
|
||||
docker-compose down
|
||||
```
|
||||
### Standard (nur moderner Stack: DB + API + Frontend)
|
||||
```bash
|
||||
docker compose up -d
|
||||
```
|
||||
Öffnen: http://localhost:3000
|
||||
|
||||
### Mit Legacy PHP zusätzlich
|
||||
```bash
|
||||
docker compose --profile legacy up -d
|
||||
```
|
||||
Öffnen: http://localhost:8082
|
||||
|
||||
### Mit phpMyAdmin zusätzlich
|
||||
```bash
|
||||
docker compose --profile admin up -d
|
||||
```
|
||||
Öffnen: http://localhost:8083
|
||||
|
||||
### Beide Zusatz-Profile
|
||||
```bash
|
||||
docker compose --profile legacy --profile admin up -d
|
||||
```
|
||||
|
||||
### Alles stoppen
|
||||
```bash
|
||||
docker compose down
|
||||
```
|
||||
|
||||
### Neu bauen (z.B. nach Codeänderungen Backend/Frontend)
|
||||
```bash
|
||||
docker compose build backend frontend
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
### Nur Backend neu bauen
|
||||
```bash
|
||||
docker compose build backend && docker compose up -d backend
|
||||
```
|
||||
|
||||
### Logs
|
||||
```bash
|
||||
docker compose logs -f backend
|
||||
docker compose logs -f frontend
|
||||
docker compose logs -f mysql
|
||||
```
|
||||
|
||||
## CORS Hinweis
|
||||
Aktuell ist `CORS_ORIGIN="*"` (Testphase). Für Produktion einschränken, z.B.:
|
||||
```yaml
|
||||
CORS_ORIGIN: http://esprimo:3000,http://localhost:3000
|
||||
```
|
||||
Danach Backend neu bauen.
|
||||
|
||||
## Datenbankzugang
|
||||
|
||||
## Datenbankzugang
|
||||
|
||||
@@ -41,23 +96,16 @@ Eine dockerisierte Version der Rezepte-Verwaltungsanwendung mit PHP, MySQL und p
|
||||
- Username: root
|
||||
- Password: rezepte123
|
||||
|
||||
## Entwicklung
|
||||
## Entwicklung innerhalb Docker
|
||||
|
||||
### Container neu bauen:
|
||||
Status:
|
||||
```bash
|
||||
docker-compose build --no-cache
|
||||
docker-compose up -d
|
||||
docker compose ps
|
||||
```
|
||||
|
||||
### Logs anzeigen:
|
||||
Direktes DB Login (Host hat mysql Client):
|
||||
```bash
|
||||
docker-compose logs -f php-app
|
||||
docker-compose logs -f mysql
|
||||
```
|
||||
|
||||
### Container Status:
|
||||
```bash
|
||||
docker-compose ps
|
||||
mysql -h 127.0.0.1 -P 3307 -u rezepte_user -p'rezepte_pass' rezepte
|
||||
```
|
||||
|
||||
## Datenvolumes
|
||||
@@ -66,4 +114,9 @@ Die MySQL-Daten werden in einem Docker-Volume gespeichert und bleiben auch nach
|
||||
|
||||
## Datenbankinitialisierung
|
||||
|
||||
Beim ersten Start werden automatisch alle Tabellen und Daten aus den SQL-Dateien importiert.
|
||||
Beim ersten Start importiert MySQL automatisch SQL-Skripte aus `sql-init/`.
|
||||
|
||||
## Weiterführend
|
||||
- Moderne Stack Doku: `NODEJS_README.md`
|
||||
- Traefik / Registry Deploy: siehe entsprechende `*_SETUP.md` Dateien
|
||||
- Sicherheitshärtung TODO: CORS einschränken, CSP Header, chown Migration verbessern
|
||||
Reference in New Issue
Block a user