- 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
191 lines
5.3 KiB
Bash
Executable File
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 ""
|