Files
laravel-llm-gateway/setup-laravel.sh
wtrinkl b1363aeab9 Initial commit: Any-LLM Gateway with Laravel Admin Interface
- Any-LLM Gateway setup with Docker Compose
- Laravel 11 admin interface with Livewire
- Dashboard with usage statistics and charts
- Gateway Users management with budget tracking
- API Keys management with revocation
- Budget templates with assignment
- Usage Logs with filtering and CSV export
- Model Pricing management with calculator
- PostgreSQL database integration
- Complete authentication system for admins
2025-11-16 12:38:05 +01:00

191 lines
5.3 KiB
Bash
Executable File

#!/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'
<?php
use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
return new class extends Migration
{
public function up(): void
{
Schema::create('admins', function (Blueprint $table) {
\$table->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 ""