README: Admin-Initial-Passwort ist seit Pentest-12 zufällig
Die README versprach weiterhin "admin@admin.com / admin" als Default, aber Pentest Runde 12 hat das hardcoded "admin" entfernt (Komplexitäts-Policy-Verletzung). Der Seed generiert jetzt ein 28-Zeichen-Zufallspasswort und schreibt es einmal nach stdout. Aktualisiert: - Quick-Start-Header: Hinweis statt direktes Passwort - "Erste Inbetriebnahme"-Block: docker-logs-Befehl + SEED_ADMIN_PASSWORD-Alternative - "Erster Login"-Sektion: vollständige Anleitung inkl. Beispiel-Ausgabe - "Production-Deployment"-Checkliste: aktualisiert - .env.example: SEED_ADMIN_PASSWORD-Block dokumentiert Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
+10
-2
@@ -86,9 +86,17 @@ SSRF_BLOCK_PRIVATE_IPS=false
|
||||
ADMINER_DESIGN=dracula
|
||||
|
||||
# ============== SEED ==============
|
||||
# Bei leerer DB seedet der Container automatisch (legt admin@admin.com / admin
|
||||
# + Stammdaten an) – nichts zu konfigurieren.
|
||||
# Bei leerer DB seedet der Container automatisch (legt admin@admin.com +
|
||||
# Stammdaten an) – nichts zu konfigurieren.
|
||||
# Nur wenn man eine NICHT-leere DB nochmal forciert seeden will (z.B. nach
|
||||
# Reset / Stammdaten-Update), kurz auf 'true' setzen, neu starten, dann
|
||||
# wieder zurück.
|
||||
RUN_SEED=false
|
||||
|
||||
# Initial-Passwort für admin@admin.com beim Seed. Mindestens 25 Zeichen,
|
||||
# sonst wird der Wert ignoriert und stattdessen ein 28-Zeichen-Zufalls-
|
||||
# passwort erzeugt und EINMAL nach stdout geschrieben:
|
||||
# docker logs opencrm-app 2>&1 | grep -A 5 "Initial-Passwort"
|
||||
# Wer keine Lust auf die Log-Suche hat, setzt hier ein eigenes starkes
|
||||
# Passwort vor dem ersten `docker compose up -d`.
|
||||
# SEED_ADMIN_PASSWORD=
|
||||
|
||||
@@ -61,7 +61,7 @@ docker compose up -d
|
||||
```
|
||||
|
||||
Browser:
|
||||
- **CRM**: http://localhost:3010 (Login: `admin@admin.com` / `admin`)
|
||||
- **CRM**: http://localhost:3010 (Login: `admin@admin.com` – Initial-Passwort siehe unten)
|
||||
- **Datenbank-UI** (Adminer): http://localhost:8081 (Server: `db`, User: `root`, DB: `opencrm`)
|
||||
|
||||
Alle persistenten Daten liegen in `./data/`:
|
||||
@@ -75,9 +75,22 @@ Alle persistenten Daten liegen in `./data/`:
|
||||
|
||||
Ports + Pfade konfigurierst du in `./.env` (Default-Werte siehe `.env.example`).
|
||||
|
||||
> **Erste Inbetriebnahme:** In der `.env` einmalig `RUN_SEED=true` setzen,
|
||||
> `docker compose up -d` ausführen, dann wieder auf `false`. Danach existiert
|
||||
> der initiale Admin-User `admin@admin.com` / `admin`.
|
||||
> **Erste Inbetriebnahme:** Bei leerer DB läuft der Seed automatisch
|
||||
> (kein Eingriff nötig). Nur wenn du eine bereits befüllte DB erneut
|
||||
> seeden willst, einmalig `RUN_SEED=true` in der `.env` setzen,
|
||||
> `docker compose up -d` ausführen, dann wieder auf `false`.
|
||||
>
|
||||
> Der initiale Admin-User ist **`admin@admin.com`**. Das Passwort wird
|
||||
> beim Seed zufällig generiert (28 Zeichen) und genau einmal in den
|
||||
> Container-Logs ausgegeben:
|
||||
> ```bash
|
||||
> docker logs opencrm-app 2>&1 | grep -A 5 "Initial-Passwort"
|
||||
> ```
|
||||
> Alternativ kannst du **vor dem ersten Start** ein eigenes Passwort
|
||||
> setzen, indem du `SEED_ADMIN_PASSWORD=…` (mindestens 25 Zeichen, sonst
|
||||
> wird's ignoriert) in der `.env` einträgst. Nach dem ersten Login
|
||||
> sollte das Passwort über *Einstellungen → Mein Profil* geändert
|
||||
> werden.
|
||||
|
||||
## Voraussetzungen
|
||||
|
||||
@@ -186,11 +199,33 @@ Das Frontend läuft auf `http://localhost:5173`
|
||||
|
||||
Nach dem Seed sind folgende Zugangsdaten verfügbar:
|
||||
|
||||
- **E-Mail:** admin@admin.com
|
||||
- **Passwort:** admin
|
||||
- **E-Mail:** `admin@admin.com`
|
||||
- **Passwort:** wird beim Seed zufällig generiert (28 Zeichen) und einmal
|
||||
in den Container-Logs ausgegeben:
|
||||
```bash
|
||||
docker logs opencrm-app 2>&1 | grep -A 5 "Initial-Passwort"
|
||||
```
|
||||
Beispiel-Ausgabe:
|
||||
```
|
||||
========================================================
|
||||
Admin-User: admin@admin.com
|
||||
Initial-Passwort: <28-zeichen-zufalls-passwort>
|
||||
⚠️ Dieses Passwort wird hier EINMAL ausgegeben!
|
||||
Bitte sofort nach dem ersten Login ändern.
|
||||
========================================================
|
||||
```
|
||||
Wer das Log nicht mehr findet (z.B. Container schon länger gerollt),
|
||||
setzt `SEED_ADMIN_PASSWORD=<min. 25 Zeichen>` in der `.env` und startet
|
||||
einmalig mit `RUN_SEED=true` neu – der Seed ist idempotent und
|
||||
überschreibt das Admin-Passwort. Danach `RUN_SEED` wieder auf `false`.
|
||||
|
||||
> **Wichtig:** Vor dem ersten Production-Deployment das Default-Passwort sofort
|
||||
> ändern und Secrets rotieren – siehe [Production-Deployment](#production-deployment).
|
||||
> **Tipp:** Wer von Anfang an ein eigenes Admin-Passwort haben möchte,
|
||||
> setzt `SEED_ADMIN_PASSWORD=<min. 25 Zeichen>` **bevor** der erste
|
||||
> `docker compose up -d` läuft. Der Wert wird dann statt des Zufalls-
|
||||
> passworts verwendet (siehe `.env.example`).
|
||||
|
||||
> **Wichtig:** Vor dem ersten Production-Deployment Secrets rotieren –
|
||||
> siehe [Production-Deployment](#production-deployment).
|
||||
|
||||
## Production-Deployment
|
||||
|
||||
@@ -240,7 +275,9 @@ Plus:
|
||||
und der `/auth/refresh`-Endpoint kann den User nicht mehr nachladen
|
||||
(= alle 15 min Re-Login). Beim NPM-Setup landen Frontend und API automatisch
|
||||
auf derselben Domain via Proxy-Path.
|
||||
- **Default-Admin-Passwort ändern** (admin@admin.com / admin).
|
||||
- **Admin-Initial-Passwort ändern**: das beim Seed generierte Zufalls-Passwort
|
||||
(siehe [Erster Login](#erster-login)) im Profil überschreiben – oder gleich
|
||||
per `SEED_ADMIN_PASSWORD` in der `.env` vor dem ersten Start setzen.
|
||||
- **Manuelle Test-Checkliste** aus [docs/TESTING.md](docs/TESTING.md) einmal komplett
|
||||
durchklicken.
|
||||
- **Monitoring konfigurieren**: Einstellungen → Sicherheits-Monitoring → Alert-E-Mail
|
||||
|
||||
Reference in New Issue
Block a user