Build and Push Docker Image only on Conventional Commits / build (push) Has been cancelled
992 lines
19 KiB
Markdown
992 lines
19 KiB
Markdown
# Entwickler-Setup-Guide: Risk Intelligence Platform
|
|
|
|
## 📋 Inhaltsverzeichnis
|
|
|
|
1. [Voraussetzungen](#voraussetzungen)
|
|
2. [Schnellstart](#schnellstart)
|
|
3. [Detaillierte Installation](#detaillierte-installation)
|
|
4. [Datenbank-Setup](#datenbank-setup)
|
|
5. [Environment-Konfiguration](#environment-konfiguration)
|
|
6. [Frontend-Assets](#frontend-assets)
|
|
7. [Erste Schritte](#erste-schritte)
|
|
8. [Development-Workflow](#development-workflow)
|
|
9. [Troubleshooting](#troubleshooting)
|
|
10. [Nützliche Commands](#nützliche-commands)
|
|
|
|
---
|
|
|
|
## Voraussetzungen
|
|
|
|
### Erforderliche Software
|
|
|
|
| Software | Mindestversion | Empfohlen | Installation |
|
|
|----------|---------------|-----------|--------------|
|
|
| **PHP** | 8.2 | 8.4.14+ | [Laravel Herd](https://herd.laravel.com) |
|
|
| **Composer** | 2.0 | Latest | Via Herd oder [getcomposer.org](https://getcomposer.org) |
|
|
| **Node.js** | 18.x | 20.x+ | [nodejs.org](https://nodejs.org) |
|
|
| **npm** | 9.x | Latest | Mit Node.js installiert |
|
|
| **PostgreSQL** | 14.x | 16.x+ | [postgresql.org](https://www.postgresql.org) |
|
|
| **Git** | 2.x | Latest | [git-scm.com](https://git-scm.com) |
|
|
|
|
### Empfohlene Tools
|
|
|
|
- **Laravel Herd** - Lokale PHP-Entwicklungsumgebung (macOS)
|
|
- **TablePlus** / **pgAdmin** - PostgreSQL GUI
|
|
- **VS Code** - Editor mit PHP/Laravel Extensions
|
|
- **Postman** / **Insomnia** - API Testing (optional)
|
|
|
|
### PHP Extensions
|
|
|
|
Folgende PHP Extensions werden benötigt:
|
|
|
|
```bash
|
|
# Prüfe installierte Extensions
|
|
php -m
|
|
|
|
# Benötigte Extensions:
|
|
- pdo_pgsql # PostgreSQL Driver
|
|
- mbstring # Multibyte String
|
|
- xml # XML Support
|
|
- curl # HTTP Client
|
|
- bcmath # Precision Math
|
|
- fileinfo # File Information
|
|
- json # JSON Support
|
|
- openssl # Encryption
|
|
- tokenizer # PHP Tokenizer
|
|
- zip # ZIP Archive
|
|
```
|
|
|
|
---
|
|
|
|
## Schnellstart
|
|
|
|
Für erfahrene Entwickler - vollständige Installation in 5 Minuten:
|
|
|
|
```bash
|
|
# 1. Repository klonen
|
|
git clone <repository-url> risk-platform
|
|
cd risk-platform
|
|
|
|
# 2. Dependencies installieren & Setup ausführen
|
|
composer setup
|
|
|
|
# 3. PostgreSQL-Datenbank erstellen (siehe unten)
|
|
# Anpassen: .env mit DB-Credentials
|
|
|
|
# 4. Migrations ausführen
|
|
php artisan migrate --seed
|
|
|
|
# 5. Development-Server starten
|
|
composer run dev
|
|
```
|
|
|
|
**Fertig!** Die Applikation läuft auf [http://localhost:8000](http://localhost:8000)
|
|
|
|
---
|
|
|
|
## Detaillierte Installation
|
|
|
|
### Schritt 1: Repository klonen
|
|
|
|
```bash
|
|
# Via HTTPS
|
|
git clone https://github.com/your-org/risk-platform.git
|
|
cd risk-platform
|
|
|
|
# Oder via SSH
|
|
git clone git@github.com:your-org/risk-platform.git
|
|
cd risk-platform
|
|
```
|
|
|
|
### Schritt 2: PHP Dependencies installieren
|
|
|
|
```bash
|
|
composer install
|
|
```
|
|
|
|
**Was passiert dabei?**
|
|
- Installiert alle Laravel-Pakete
|
|
- Installiert Livewire, Flux UI, Fortify
|
|
- Installiert Dev-Dependencies (Pest, Pint, Boost)
|
|
- Generiert Autoload-Files
|
|
|
|
### Schritt 3: Environment-Datei erstellen
|
|
|
|
```bash
|
|
# .env.example nach .env kopieren
|
|
cp .env.example .env
|
|
|
|
# Application Key generieren
|
|
php artisan key:generate
|
|
```
|
|
|
|
### Schritt 4: Node Dependencies installieren
|
|
|
|
```bash
|
|
npm install
|
|
```
|
|
|
|
**Was passiert dabei?**
|
|
- Installiert Vite
|
|
- Installiert Tailwind CSS v4
|
|
- Installiert Build-Tools
|
|
|
|
---
|
|
|
|
## Datenbank-Setup
|
|
|
|
### PostgreSQL Installation
|
|
|
|
#### macOS (mit Homebrew)
|
|
|
|
```bash
|
|
# PostgreSQL installieren
|
|
brew install postgresql@16
|
|
|
|
# Als Service starten
|
|
brew services start postgresql@16
|
|
|
|
# Verbindung testen
|
|
psql postgres
|
|
```
|
|
|
|
#### macOS (mit Postgres.app)
|
|
|
|
1. Download von [postgresapp.com](https://postgresapp.com)
|
|
2. App starten
|
|
3. Default Server initialisieren
|
|
|
|
#### Ubuntu/Debian
|
|
|
|
```bash
|
|
sudo apt update
|
|
sudo apt install postgresql postgresql-contrib
|
|
sudo systemctl start postgresql
|
|
sudo systemctl enable postgresql
|
|
```
|
|
|
|
### Datenbank erstellen
|
|
|
|
```bash
|
|
# Als postgres User einloggen
|
|
psql postgres
|
|
|
|
# Oder direkt mit spezifischem User
|
|
sudo -u postgres psql
|
|
```
|
|
|
|
```sql
|
|
-- Datenbank erstellen
|
|
CREATE DATABASE risk_platform_db;
|
|
|
|
-- User erstellen (optional)
|
|
CREATE USER risk_user WITH ENCRYPTED PASSWORD 'your_secure_password';
|
|
|
|
-- Rechte vergeben
|
|
GRANT ALL PRIVILEGES ON DATABASE risk_platform_db TO risk_user;
|
|
|
|
-- In PostgreSQL 15+ auch Schema-Rechte vergeben
|
|
\c risk_platform_db
|
|
GRANT ALL ON SCHEMA public TO risk_user;
|
|
|
|
-- Exit
|
|
\q
|
|
```
|
|
|
|
### Schemas erstellen
|
|
|
|
```sql
|
|
-- Verbindung zur DB
|
|
psql -U risk_user -d risk_platform_db
|
|
|
|
-- PUBLIC Schema (wird automatisch erstellt)
|
|
-- BACKEND Schema erstellen
|
|
CREATE SCHEMA IF NOT EXISTS backend;
|
|
|
|
-- Rechte für BACKEND Schema
|
|
GRANT ALL ON SCHEMA backend TO risk_user;
|
|
|
|
-- Exit
|
|
\q
|
|
```
|
|
|
|
### Verbindung testen
|
|
|
|
```bash
|
|
# Direkter Connect
|
|
psql -h 127.0.0.1 -p 5432 -U risk_user -d risk_platform_db
|
|
|
|
# Mit Laravel Tinker
|
|
php artisan tinker
|
|
>>> DB::connection('pgsql_second')->select('SELECT version()');
|
|
>>> DB::connection('backend')->select('SELECT current_schema()');
|
|
```
|
|
|
|
---
|
|
|
|
## Environment-Konfiguration
|
|
|
|
### .env Datei anpassen
|
|
|
|
```bash
|
|
# .env öffnen und anpassen
|
|
nano .env
|
|
```
|
|
|
|
#### Grundkonfiguration
|
|
|
|
```ini
|
|
APP_NAME="Risk Intelligence Platform"
|
|
APP_ENV=local
|
|
APP_KEY=base64:xxx # Wird von key:generate erstellt
|
|
APP_DEBUG=true
|
|
APP_URL=http://localhost:8000
|
|
|
|
APP_LOCALE=de
|
|
APP_FALLBACK_LOCALE=en
|
|
APP_FAKER_LOCALE=de_DE
|
|
```
|
|
|
|
#### Datenbank-Konfiguration (Wichtig!)
|
|
|
|
```ini
|
|
# Default Connection (PUBLIC Schema)
|
|
DB_CONNECTION=pgsql
|
|
DB_CONNECTION2=pgsql
|
|
DB_HOST2=127.0.0.1
|
|
DB_PORT2=5432
|
|
DB_DATABASE2=risk_platform_db
|
|
DB_USERNAME2=risk_user
|
|
DB_PASSWORD2=your_secure_password
|
|
```
|
|
|
|
**Wichtig:** Die Applikation nutzt `DB_*2` Variablen für PostgreSQL!
|
|
|
|
#### Cache & Session
|
|
|
|
```ini
|
|
CACHE_STORE=database
|
|
SESSION_DRIVER=database
|
|
QUEUE_CONNECTION=database
|
|
```
|
|
|
|
**Warum database?**
|
|
- Einfaches Setup ohne Redis
|
|
- Funktioniert out-of-the-box
|
|
- Für Produktion: Wechsel zu Redis empfohlen
|
|
|
|
#### Mail-Konfiguration (Development)
|
|
|
|
```ini
|
|
MAIL_MAILER=log
|
|
MAIL_FROM_ADDRESS="noreply@risk-platform.test"
|
|
MAIL_FROM_NAME="${APP_NAME}"
|
|
```
|
|
|
|
Mails werden in `storage/logs/laravel.log` gespeichert.
|
|
|
|
#### Optional: Redis (für bessere Performance)
|
|
|
|
```ini
|
|
CACHE_STORE=redis
|
|
SESSION_DRIVER=redis
|
|
QUEUE_CONNECTION=redis
|
|
|
|
REDIS_HOST=127.0.0.1
|
|
REDIS_PASSWORD=null
|
|
REDIS_PORT=6379
|
|
```
|
|
|
|
### Vollständige .env Vorlage
|
|
|
|
<details>
|
|
<summary>Klicken für vollständige .env Beispiel-Datei</summary>
|
|
|
|
```ini
|
|
APP_NAME="Risk Intelligence Platform"
|
|
APP_ENV=local
|
|
APP_KEY=base64:xxx
|
|
APP_DEBUG=true
|
|
APP_URL=http://localhost:8000
|
|
|
|
APP_LOCALE=de
|
|
APP_FALLBACK_LOCALE=en
|
|
APP_FAKER_LOCALE=de_DE
|
|
|
|
APP_MAINTENANCE_DRIVER=file
|
|
PHP_CLI_SERVER_WORKERS=4
|
|
BCRYPT_ROUNDS=12
|
|
|
|
LOG_CHANNEL=stack
|
|
LOG_STACK=single
|
|
LOG_DEPRECATIONS_CHANNEL=null
|
|
LOG_LEVEL=debug
|
|
|
|
# PostgreSQL Configuration
|
|
DB_CONNECTION=pgsql
|
|
DB_CONNECTION2=pgsql
|
|
DB_HOST2=127.0.0.1
|
|
DB_PORT2=5432
|
|
DB_DATABASE2=risk_platform_db
|
|
DB_USERNAME2=risk_user
|
|
DB_PASSWORD2=your_secure_password
|
|
|
|
# Session & Cache
|
|
SESSION_DRIVER=database
|
|
SESSION_LIFETIME=120
|
|
SESSION_ENCRYPT=false
|
|
SESSION_PATH=/
|
|
SESSION_DOMAIN=null
|
|
|
|
CACHE_STORE=database
|
|
QUEUE_CONNECTION=database
|
|
|
|
# Broadcasting & Filesystem
|
|
BROADCAST_CONNECTION=log
|
|
FILESYSTEM_DISK=local
|
|
|
|
# Mail
|
|
MAIL_MAILER=log
|
|
MAIL_FROM_ADDRESS="noreply@risk-platform.test"
|
|
MAIL_FROM_NAME="${APP_NAME}"
|
|
|
|
# Vite
|
|
VITE_APP_NAME="${APP_NAME}"
|
|
```
|
|
</details>
|
|
|
|
---
|
|
|
|
## Frontend-Assets
|
|
|
|
### Assets kompilieren
|
|
|
|
```bash
|
|
# Development Build (einmalig)
|
|
npm run build
|
|
|
|
# Development mit Hot Reload
|
|
npm run dev
|
|
```
|
|
|
|
### Was macht `npm run dev`?
|
|
|
|
```
|
|
┌─────────────────────────────────────────────────┐
|
|
│ VITE v7.0.4 ready in X ms │
|
|
│ │
|
|
│ ➜ Local: http://localhost:5173/ │
|
|
│ ➜ Network: use --host to expose │
|
|
│ │
|
|
│ ➜ Laravel: http://localhost:8000 │
|
|
└─────────────────────────────────────────────────┘
|
|
|
|
✓ compiled successfully
|
|
```
|
|
|
|
- Startet Vite Dev-Server auf Port 5173
|
|
- Hot Module Replacement (HMR) aktiviert
|
|
- Tailwind CSS v4 wird kompiliert
|
|
- Livewire-Assets werden gebundled
|
|
|
|
### Production Build
|
|
|
|
```bash
|
|
npm run build
|
|
|
|
# Output:
|
|
# dist/assets/app-xxxxx.js
|
|
# dist/assets/app-xxxxx.css
|
|
```
|
|
|
|
---
|
|
|
|
## Erste Schritte
|
|
|
|
### 1. Migrations ausführen
|
|
|
|
```bash
|
|
# Alle Migrations ausführen
|
|
php artisan migrate
|
|
|
|
# Mit Seeding (Test-Daten)
|
|
php artisan migrate --seed
|
|
|
|
# Migration-Status prüfen
|
|
php artisan migrate:status
|
|
```
|
|
|
|
**Erwartete Tabellen nach Migration:**
|
|
|
|
```
|
|
┌──────────────────────────────────┬────────┐
|
|
│ Migration │ Ran? │
|
|
├──────────────────────────────────┼────────┤
|
|
│ 0001_01_01_000000_create_users │ Yes │
|
|
│ 0001_01_01_000001_create_cache │ Yes │
|
|
│ 0001_01_01_000002_create_jobs │ Yes │
|
|
│ 2025_09_02_075243_add_two_factor │ Yes │
|
|
│ 2025_10_20_181750_create_companies │ Yes │
|
|
│ 2025_10_20_181753_create_transactions │ Yes │
|
|
│ 2025_11_16_140224_add_output_columns │ Yes │
|
|
│ 2025_11_16_150000_create_backend_data_pool │ Yes │
|
|
│ ... │ │
|
|
└──────────────────────────────────┴────────┘
|
|
```
|
|
|
|
### 2. Test-User erstellen
|
|
|
|
```bash
|
|
php artisan tinker
|
|
```
|
|
|
|
```php
|
|
// Test-User erstellen
|
|
$user = App\Models\User::create([
|
|
'name' => 'Admin User',
|
|
'email' => 'admin@example.com',
|
|
'password' => bcrypt('password'),
|
|
'email_verified_at' => now(),
|
|
]);
|
|
|
|
// Oder mit Factory
|
|
App\Models\User::factory()->create([
|
|
'email' => 'test@example.com',
|
|
]);
|
|
|
|
exit
|
|
```
|
|
|
|
### 3. Development-Server starten
|
|
|
|
#### Option A: Composer Dev Command (Empfohlen)
|
|
|
|
```bash
|
|
composer run dev
|
|
```
|
|
|
|
**Startet parallel:**
|
|
- `php artisan serve` → http://localhost:8000
|
|
- `php artisan queue:listen` → Queue Worker
|
|
- `php artisan pail` → Live Logs
|
|
- `npm run dev` → Vite Dev Server
|
|
|
|
#### Option B: Einzelne Services manuell
|
|
|
|
```bash
|
|
# Terminal 1: Laravel Server
|
|
php artisan serve
|
|
|
|
# Terminal 2: Vite Dev Server
|
|
npm run dev
|
|
|
|
# Terminal 3 (optional): Queue Worker
|
|
php artisan queue:work
|
|
|
|
# Terminal 4 (optional): Logs
|
|
php artisan pail
|
|
```
|
|
|
|
#### Option C: Laravel Herd (macOS)
|
|
|
|
Wenn du Laravel Herd nutzt:
|
|
|
|
1. Projekt in Herd-Verzeichnis verschieben
|
|
2. Automatische Domain: `risk-platform.test`
|
|
3. HTTPS automatisch aktiviert
|
|
4. Kein `php artisan serve` notwendig
|
|
|
|
```bash
|
|
# In Herd-Verzeichnis verschieben
|
|
mv ~/risk-platform ~/Herd/risk-platform
|
|
|
|
# Browser öffnen
|
|
open https://risk-platform.test
|
|
```
|
|
|
|
### 4. Applikation öffnen
|
|
|
|
Browser öffnen: [http://localhost:8000](http://localhost:8000)
|
|
|
|
**Login-Credentials:**
|
|
- Email: `test@example.com`
|
|
- Password: `password`
|
|
|
|
---
|
|
|
|
## Development-Workflow
|
|
|
|
### Typischer Entwicklungstag
|
|
|
|
```bash
|
|
# 1. Morgen: Repository aktualisieren
|
|
git pull origin main
|
|
|
|
# 2. Dependencies aktualisieren (falls composer.lock geändert)
|
|
composer install
|
|
npm install
|
|
|
|
# 3. Neue Migrations (falls vorhanden)
|
|
php artisan migrate
|
|
|
|
# 4. Dev-Server starten
|
|
composer run dev
|
|
|
|
# 5. Am Ende: Code formatieren
|
|
vendor/bin/pint
|
|
|
|
# 6. Tests ausführen
|
|
php artisan test
|
|
|
|
# 7. Commit & Push
|
|
git add .
|
|
git commit -m "feat: neue feature"
|
|
git push
|
|
```
|
|
|
|
### Code-Formatierung
|
|
|
|
```bash
|
|
# Alle Dateien formatieren
|
|
vendor/bin/pint
|
|
|
|
# Nur geänderte Dateien
|
|
vendor/bin/pint --dirty
|
|
|
|
# Test-Modus (ohne Änderungen)
|
|
vendor/bin/pint --test
|
|
```
|
|
|
|
### Tests ausführen
|
|
|
|
```bash
|
|
# Alle Tests
|
|
php artisan test
|
|
|
|
# Nur Feature Tests
|
|
php artisan test --testsuite=Feature
|
|
|
|
# Nur Unit Tests
|
|
php artisan test --testsuite=Unit
|
|
|
|
# Spezifische Test-Datei
|
|
php artisan test tests/Feature/CompanyTest.php
|
|
|
|
# Mit Filter
|
|
php artisan test --filter=testCompanyCreation
|
|
|
|
# Mit Coverage (benötigt Xdebug)
|
|
php artisan test --coverage
|
|
```
|
|
|
|
### Backend-Daten synchronisieren
|
|
|
|
```bash
|
|
# Stats anzeigen (kein Sync)
|
|
php artisan backend:sync-data-pool --stats
|
|
|
|
# Incremental Sync
|
|
php artisan backend:sync-data-pool --incremental
|
|
|
|
# Full Sync
|
|
php artisan backend:sync-data-pool --full
|
|
|
|
# Transformation
|
|
php artisan backend:transform-data-pool
|
|
|
|
# Kompletter Rebuild
|
|
php artisan backend:rebuild
|
|
```
|
|
|
|
### Scheduler lokal testen
|
|
|
|
```bash
|
|
# Schedule Worker (läuft dauerhaft)
|
|
php artisan schedule:work
|
|
|
|
# Oder: Nächste Due-Tasks anzeigen
|
|
php artisan schedule:list
|
|
|
|
# Einzelnen Task testen
|
|
php artisan schedule:test sync-backend-data-pool-incremental
|
|
```
|
|
|
|
---
|
|
|
|
## Troubleshooting
|
|
|
|
### Problem: "SQLSTATE[08006] Connection refused"
|
|
|
|
**Ursache:** PostgreSQL läuft nicht oder falsche Credentials
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# PostgreSQL-Status prüfen
|
|
brew services list | grep postgresql
|
|
|
|
# PostgreSQL starten
|
|
brew services start postgresql@16
|
|
|
|
# Verbindung testen
|
|
psql -h 127.0.0.1 -p 5432 -U risk_user -d risk_platform_db
|
|
|
|
# .env prüfen
|
|
cat .env | grep DB_
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: "Class 'PDO' not found"
|
|
|
|
**Ursache:** PHP PostgreSQL Extension fehlt
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Installierte Extensions prüfen
|
|
php -m | grep pdo
|
|
|
|
# Mit Herd (macOS)
|
|
# Extensions sind normalerweise vorinstalliert
|
|
|
|
# Oder PHP neu installieren via Homebrew
|
|
brew reinstall php@8.4
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: "Vite manifest not found"
|
|
|
|
**Ursache:** Frontend-Assets nicht kompiliert
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Development Build
|
|
npm run build
|
|
|
|
# Oder Dev-Server starten
|
|
npm run dev
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: "419 Page Expired" bei Forms
|
|
|
|
**Ursache:** CSRF-Token ungültig (Session abgelaufen)
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Cache leeren
|
|
php artisan config:clear
|
|
php artisan cache:clear
|
|
php artisan view:clear
|
|
|
|
# Browser: Hard Refresh (Cmd+Shift+R / Ctrl+Shift+R)
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: Migrations laufen nicht
|
|
|
|
**Ursache:** Datenbank-Schema fehlt oder keine Rechte
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Schema-Rechte prüfen
|
|
psql -U risk_user -d risk_platform_db
|
|
|
|
# In psql:
|
|
SELECT schema_name FROM information_schema.schemata;
|
|
|
|
# Rechte vergeben
|
|
GRANT ALL ON SCHEMA public TO risk_user;
|
|
GRANT ALL ON ALL TABLES IN SCHEMA public TO risk_user;
|
|
|
|
# Migration erneut versuchen
|
|
php artisan migrate
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: Queue-Jobs laufen nicht
|
|
|
|
**Ursache:** Queue-Worker läuft nicht
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Queue-Worker starten
|
|
php artisan queue:work
|
|
|
|
# Oder mit Auto-Restart bei Code-Änderungen
|
|
php artisan queue:listen
|
|
|
|
# Failed Jobs anzeigen
|
|
php artisan queue:failed
|
|
|
|
# Failed Jobs erneut versuchen
|
|
php artisan queue:retry all
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: "Class not found" Fehler
|
|
|
|
**Ursache:** Autoload-Cache veraltet
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Autoload neu generieren
|
|
composer dump-autoload
|
|
|
|
# Alle Caches leeren
|
|
php artisan optimize:clear
|
|
|
|
# Oder einzeln:
|
|
php artisan config:clear
|
|
php artisan cache:clear
|
|
php artisan route:clear
|
|
php artisan view:clear
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: Livewire-Components laden nicht
|
|
|
|
**Ursache:** Volt-Components nicht registriert
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Volt Provider prüfen
|
|
cat bootstrap/providers.php | grep Volt
|
|
|
|
# Cache leeren
|
|
php artisan optimize:clear
|
|
|
|
# Browser Cache leeren
|
|
# Cmd+Shift+R (macOS) oder Ctrl+Shift+R (Windows/Linux)
|
|
```
|
|
|
|
---
|
|
|
|
### Problem: Styling fehlt / Tailwind funktioniert nicht
|
|
|
|
**Ursache:** Vite-Server läuft nicht oder falsche Konfiguration
|
|
|
|
**Lösung:**
|
|
```bash
|
|
# Vite Dev-Server neu starten
|
|
npm run dev
|
|
|
|
# Oder Production-Build
|
|
npm run build
|
|
|
|
# Tailwind-Config prüfen
|
|
cat tailwind.config.js
|
|
|
|
# Node-Modules neu installieren
|
|
rm -rf node_modules package-lock.json
|
|
npm install
|
|
```
|
|
|
|
---
|
|
|
|
## Nützliche Commands
|
|
|
|
### Laravel Artisan
|
|
|
|
```bash
|
|
# Liste aller Commands
|
|
php artisan list
|
|
|
|
# Command-Hilfe
|
|
php artisan help migrate
|
|
|
|
# Interaktive Shell
|
|
php artisan tinker
|
|
|
|
# Cache Management
|
|
php artisan cache:clear
|
|
php artisan config:clear
|
|
php artisan route:clear
|
|
php artisan view:clear
|
|
php artisan optimize:clear # Alle Caches auf einmal
|
|
|
|
# Database
|
|
php artisan db:show # DB-Info anzeigen
|
|
php artisan migrate:status # Migration-Status
|
|
php artisan migrate:fresh --seed # DB neu aufsetzen + Seeds
|
|
|
|
# Make Commands
|
|
php artisan make:model Company
|
|
php artisan make:controller CompanyController
|
|
php artisan make:migration create_companies_table
|
|
php artisan make:livewire CompanySearch
|
|
php artisan make:test CompanyTest
|
|
php artisan make:class Services/MyService
|
|
|
|
# Routes
|
|
php artisan route:list # Alle Routes anzeigen
|
|
php artisan route:list --path=companies # Gefiltert
|
|
```
|
|
|
|
### Composer
|
|
|
|
```bash
|
|
# Dependencies installieren
|
|
composer install
|
|
|
|
# Development-Dependencies überspringen
|
|
composer install --no-dev
|
|
|
|
# Einzelnes Package installieren
|
|
composer require laravel/telescope
|
|
|
|
# Package entfernen
|
|
composer remove laravel/telescope
|
|
|
|
# Autoload regenerieren
|
|
composer dump-autoload
|
|
|
|
# Setup ausführen (custom script)
|
|
composer setup
|
|
|
|
# Dev-Server starten (custom script)
|
|
composer run dev
|
|
|
|
# Tests ausführen (custom script)
|
|
composer test
|
|
```
|
|
|
|
### NPM
|
|
|
|
```bash
|
|
# Dependencies installieren
|
|
npm install
|
|
|
|
# Dev-Server starten
|
|
npm run dev
|
|
|
|
# Production Build
|
|
npm run build
|
|
|
|
# Package installieren
|
|
npm install alpine.js
|
|
|
|
# Package entfernen
|
|
npm uninstall alpine.js
|
|
|
|
# Outdated Packages prüfen
|
|
npm outdated
|
|
|
|
# Updates installieren
|
|
npm update
|
|
```
|
|
|
|
### Git
|
|
|
|
```bash
|
|
# Aktueller Branch
|
|
git branch
|
|
|
|
# Neuen Branch erstellen
|
|
git checkout -b feature/neue-funktion
|
|
|
|
# Änderungen anzeigen
|
|
git status
|
|
git diff
|
|
|
|
# Commit
|
|
git add .
|
|
git commit -m "feat: neue funktion"
|
|
git push origin feature/neue-funktion
|
|
|
|
# Main aktualisieren
|
|
git checkout main
|
|
git pull origin main
|
|
```
|
|
|
|
### PostgreSQL
|
|
|
|
```bash
|
|
# Verbinden
|
|
psql -U risk_user -d risk_platform_db
|
|
|
|
# In psql:
|
|
\dt # Alle Tabellen
|
|
\d companies # Tabellen-Schema anzeigen
|
|
\dn # Alle Schemas
|
|
\du # Alle User
|
|
\l # Alle Datenbanken
|
|
\q # Exit
|
|
|
|
# Backup erstellen
|
|
pg_dump -U risk_user risk_platform_db > backup.sql
|
|
|
|
# Backup einspielen
|
|
psql -U risk_user risk_platform_db < backup.sql
|
|
```
|
|
|
|
---
|
|
|
|
## Nächste Schritte
|
|
|
|
Nach erfolgreichem Setup:
|
|
|
|
1. **Architektur-Dokumentation lesen** → [docs/architecture-overview.md](architecture-overview.md)
|
|
2. **Backend-Sync Commands kennenlernen** → [docs/backend-sync-commands.md](backend-sync-commands.md)
|
|
3. **Code-Konventionen studieren** → [CLAUDE.md](../CLAUDE.md)
|
|
4. **Tests schreiben & ausführen** → `php artisan test`
|
|
5. **Erste Änderungen committen** → `git commit`
|
|
|
|
---
|
|
|
|
## Hilfe & Support
|
|
|
|
### Dokumentation
|
|
|
|
- **Architektur-Übersicht:** [docs/architecture-overview.md](architecture-overview.md)
|
|
- **Backend-Sync:** [docs/backend-sync-commands.md](backend-sync-commands.md)
|
|
- **Scheduling:** [docs/scheduling-setup.md](scheduling-setup.md)
|
|
- **Migration:** [docs/sync-migration-instructions.md](sync-migration-instructions.md)
|
|
|
|
### Laravel Dokumentation
|
|
|
|
- **Laravel 12:** [https://laravel.com/docs/12.x](https://laravel.com/docs/12.x)
|
|
- **Livewire 3:** [https://livewire.laravel.com](https://livewire.laravel.com)
|
|
- **Flux UI:** [https://flux.laravel.com](https://flux.laravel.com)
|
|
- **Pest Testing:** [https://pestphp.com](https://pestphp.com)
|
|
|
|
### Logs prüfen
|
|
|
|
```bash
|
|
# Application Logs (Live)
|
|
tail -f storage/logs/laravel.log
|
|
|
|
# Nur Fehler
|
|
tail -f storage/logs/laravel.log | grep ERROR
|
|
|
|
# Mit Laravel Pail (farbig)
|
|
php artisan pail
|
|
```
|
|
|
|
### Debugging
|
|
|
|
```bash
|
|
# Laravel Debugbar (installiert)
|
|
# Aktiviert automatisch wenn APP_DEBUG=true
|
|
# Erscheint am unteren Bildschirmrand im Browser
|
|
|
|
# Tinker für schnelle Tests
|
|
php artisan tinker
|
|
>>> App\Models\Company::count()
|
|
>>> DB::table('transactions')->latest()->first()
|
|
```
|
|
|
|
---
|
|
|
|
**Setup-Zeit:** ~15-30 Minuten
|
|
**Erstellt:** 2025-11-24
|
|
**Version:** 1.0
|
|
**Autor:** Risk Intelligence Platform Team
|
|
|
|
Viel Erfolg beim Entwickeln! 🚀
|