# Tenant Setup Scripts Automatisierte Einrichtung von Tenants (porwoll.de, blogwoman.de) im Payload CMS. ## Voraussetzungen - `curl` und `jq` installiert - Admin-Zugang zum Payload CMS - Netzwerkzugriff auf die API ## Verwendung ```bash # Hilfe anzeigen ./setup.sh --help # porwoll.de auf Staging einrichten ./setup.sh porwoll # blogwoman.de auf Production einrichten ./setup.sh -e production blogwoman # Dry-Run (zeigt was passieren würde, ohne Änderungen) ./setup.sh --dry-run porwoll # Mit expliziter Tenant-ID ./setup.sh -e production -t 4 porwoll # Verbose Ausgabe ./setup.sh -v porwoll ``` ## Optionen | Option | Beschreibung | |--------|--------------| | `-e, --env` | Environment: `staging` oder `production` (default: staging) | | `-u, --user` | Admin E-Mail (wird sonst abgefragt) | | `-p, --password` | Admin Passwort (oder `PAYLOAD_PASSWORD` env var) | | `-t, --tenant-id` | Tenant-ID überschreiben | | `-d, --dry-run` | Nur anzeigen, keine Änderungen | | `-v, --verbose` | Ausführliche Ausgabe | | `-h, --help` | Hilfe anzeigen | ## Umgebungen | Environment | API URL | |-------------|---------| | staging | https://pl.porwoll.tech/api | | production | https://cms.c2sgmbh.de/api | ## Standard Tenant-IDs | Tenant | Default ID | |--------|------------| | porwoll | 4 | | blogwoman | 6 | ## Verzeichnisstruktur ``` scripts/setup-tenants/ ├── setup.sh # Hauptscript ├── README.md # Diese Dokumentation └── tenants/ ├── porwoll/ │ ├── site-settings.json # Website-Einstellungen │ ├── social-links.json # Social Media Links │ ├── pages.json # Alle Seiten │ └── navigation.json # Navigation (Main + Footer) └── blogwoman/ ├── site-settings.json ├── social-links.json ├── pages.json └── navigation.json ``` ## Was wird erstellt? ### porwoll.de - Site Settings (Kontakt, Adresse, SEO) - 5 Social Links (Facebook, X, Instagram, LinkedIn, YouTube) - 9 Seiten: - Startseite - Mensch - Zytoskandal - Whistleblowing - complex care solutions - gunshin Holding - Kontakt - Impressum - Datenschutz - Navigation (5 Hauptmenü-Einträge, 3 Footer-Links) ### blogwoman.de - Site Settings (Kontakt, SEO) - 2 Social Links (YouTube, Instagram) - 10 Seiten: - Startseite - Über mich (Caroline) - Newsletter - Favoriten - Blog - Serien - Kooperationen - Transparenz - Impressum - Datenschutz - Navigation (5 Hauptmenü-Einträge, 5 Footer-Links) ## Beispiel-Workflow ```bash # 1. Erst Dry-Run auf Staging ./setup.sh --dry-run -v porwoll # 2. Auf Staging ausführen und testen ./setup.sh -v porwoll # 3. Im Browser prüfen: https://pl.porwoll.tech/admin # 4. Wenn alles OK, auf Production ./setup.sh -e production porwoll ``` ## Fehlerbehandlung | Problem | Lösung | |---------|--------| | 401 Unauthorized | Token abgelaufen → Script neu starten | | 403 Forbidden | User hat keine Tenant-Berechtigung | | 400 Bad Request | JSON-Syntax prüfen | | Pages existieren bereits | Script überspringt bestehende Seiten | ## Hinweise - Das Script prüft vor dem Erstellen, ob Dokumente bereits existieren - Bestehende Site Settings werden aktualisiert (PATCH) - Bestehende Seiten werden übersprungen (kein Update) - Die Navigation wird nur erstellt, wenn keine existiert ## Umgebungsvariablen ```bash # Passwort aus Umgebungsvariable lesen export PAYLOAD_PASSWORD="your-password" ./setup.sh -u admin@example.com porwoll ``` ## Anpassungen Die JSON-Dateien in `tenants//` können angepasst werden: - Seiten-Inhalte in `pages.json` - Navigation in `navigation.json` - Site Settings in `site-settings.json` - Social Links in `social-links.json` ### Neue Seite hinzufügen 1. Seite in `pages.json` hinzufügen 2. Falls in Navigation: `navigation.json` aktualisieren mit `PAGE_ID_` 3. Script ausführen ## Letzte Aktualisierung 17. Januar 2026