#!/bin/bash set -e echo "🚀 Any-LLM Laravel Setup" echo "========================" echo "" # Farben für Output GREEN='\033[0;32m' BLUE='\033[0;34m' RED='\033[0;31m' NC='\033[0m' # No Color # Check if Docker is running if ! docker info > /dev/null 2>&1; then echo -e "${RED}❌ Docker ist nicht gestartet!${NC}" exit 1 fi echo -e "${BLUE}📦 Schritt 1: Laravel Projekt erstellen${NC}" if [ ! -d "laravel-app" ]; then echo "Laravel wird in ./laravel-app installiert..." docker run --rm -v $(pwd):/app composer create-project laravel/laravel laravel-app echo -e "${GREEN}✅ Laravel installiert${NC}" else echo -e "${GREEN}✅ Laravel-App existiert bereits${NC}" fi echo "" echo -e "${BLUE}📦 Schritt 2: Laravel Packages installieren${NC}" cd laravel-app # Composer packages installieren echo "Installiere Livewire und Breeze..." docker run --rm -v $(pwd):/app composer require livewire/livewire docker run --rm -v $(pwd):/app composer require laravel/breeze --dev echo -e "${GREEN}✅ Packages installiert${NC}" # Zurück zum Hauptverzeichnis cd .. echo "" echo -e "${BLUE}📦 Schritt 3: Docker Container starten${NC}" docker compose up -d --build echo "Warte auf Container..." sleep 10 echo -e "${GREEN}✅ Container gestartet${NC}" echo "" echo -e "${BLUE}📦 Schritt 4: Laravel konfigurieren${NC}" # Breeze installieren echo "Installiere Laravel Breeze..." docker compose exec laravel php artisan breeze:install livewire --dark # APP_KEY generieren echo "Generiere APP_KEY..." docker compose exec laravel php artisan key:generate # Storage Link erstellen echo "Erstelle Storage Link..." docker compose exec laravel php artisan storage:link echo -e "${GREEN}✅ Laravel konfiguriert${NC}" echo "" echo -e "${BLUE}📦 Schritt 5: Admin Migration erstellen${NC}" # Admin Migration erstellen docker compose exec laravel php artisan make:migration create_admins_table # Migration File Content erstellen MIGRATION_FILE=$(docker compose exec laravel bash -c "ls -t database/migrations/*create_admins_table.php | head -1" | tr -d '\r') docker compose exec laravel bash -c "cat > $MIGRATION_FILE << 'EOF' id(); \$table->string('name'); \$table->string('email')->unique(); \$table->timestamp('email_verified_at')->nullable(); \$table->string('password'); \$table->rememberToken(); \$table->timestamps(); }); Schema::create('password_reset_tokens', function (Blueprint $table) { \$table->string('email')->primary(); \$table->string('token'); \$table->timestamp('created_at')->nullable(); }); Schema::create('sessions', function (Blueprint $table) { \$table->string('id')->primary(); \$table->foreignId('user_id')->nullable()->index(); \$table->string('ip_address', 45)->nullable(); \$table->text('user_agent')->nullable(); \$table->longText('payload'); \$table->integer('last_activity')->index(); }); } public function down(): void { Schema::dropIfExists('admins'); Schema::dropIfExists('password_reset_tokens'); Schema::dropIfExists('sessions'); } }; EOF" # Migration ausführen echo "Führe Migrationen aus..." docker compose exec laravel php artisan migrate --force echo -e "${GREEN}✅ Migrationen abgeschlossen${NC}" echo "" echo -e "${BLUE}📦 Schritt 6: Admin User erstellen${NC}" # Admin User erstellen docker compose exec laravel php artisan tinker --execute=" \App\Models\User::create([ 'name' => 'Admin', 'email' => 'admin@example.com', 'password' => bcrypt('password123') ]); echo 'Admin User erstellt: admin@example.com / password123'; " echo -e "${GREEN}✅ Admin User erstellt${NC}" echo "" echo -e "${BLUE}📦 Schritt 7: Assets kompilieren${NC}" # NPM installieren und Assets kompilieren echo "Installiere NPM Packages..." docker compose exec laravel npm install echo "Kompiliere Assets..." docker compose exec laravel npm run build echo -e "${GREEN}✅ Assets kompiliert${NC}" echo "" echo "==========================================" echo -e "${GREEN}✅ Setup abgeschlossen!${NC}" echo "==========================================" echo "" echo "📍 URLs:" echo " - Laravel Admin: http://localhost:80" echo " - Gateway API: http://localhost:8000" echo " - Gateway Tester: http://localhost:8080" echo " - Adminer (DB): http://localhost:8081" echo "" echo "🔐 Admin Login:" echo " Email: admin@example.com" echo " Password: password123" echo "" echo "🗄️ Adminer Login:" echo " System: PostgreSQL" echo " Server: postgres" echo " Username: gateway" echo " Password: gateway" echo " Database: gateway" echo "" echo "📝 Nächste Schritte:" echo " 1. Öffne http://localhost:80 im Browser" echo " 2. Melde dich mit admin@example.com / password123 an" echo " 3. Beginne mit der Entwicklung!" echo "" echo "🛑 Container stoppen:" echo " docker compose down" echo "" echo "🔄 Container neu starten:" echo " docker compose up -d" echo ""