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
This commit is contained in:
190
setup-laravel.sh
Executable file
190
setup-laravel.sh
Executable file
@@ -0,0 +1,190 @@
|
||||
#!/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 ""
|
||||
Reference in New Issue
Block a user