#!/bin/bash # Sterntours Laravel Projekt - Initialisierungsskript # Dieses Script führt alle notwendigen Schritte zur Initialisierung des Projekts aus set -e # Beendet das Script bei Fehlern echo "================================================" echo "Sterntours Laravel Projekt - Initialisierung" echo "================================================" echo "" # Farben für Ausgabe GREEN='\033[0;32m' YELLOW='\033[1;33m' RED='\033[0;31m' NC='\033[0m' # No Color # Funktion für Erfolgsmeldungen success() { echo -e "${GREEN}✓ $1${NC}" } # Funktion für Info-Meldungen info() { echo -e "${YELLOW}➜ $1${NC}" } # Funktion für Fehler error() { echo -e "${RED}✗ $1${NC}" } # 1. Prüfe ob Docker läuft info "Prüfe Docker Installation..." if ! command -v docker &> /dev/null; then error "Docker ist nicht installiert!" exit 1 fi if ! docker info &> /dev/null; then error "Docker läuft nicht! Bitte starte Docker." exit 1 fi success "Docker ist bereit" # 2. Prüfe ob Composer installiert ist info "Prüfe Composer Installation..." if ! command -v composer &> /dev/null; then error "Composer ist nicht installiert!" exit 1 fi success "Composer ist installiert" # 3. .env Datei erstellen falls nicht vorhanden info "Prüfe .env Datei..." if [ ! -f .env ]; then if [ -f .env.example ]; then cp .env.example .env success ".env Datei erstellt" else error ".env.example nicht gefunden!" exit 1 fi else success ".env Datei existiert bereits" fi # 4. Composer Dependencies installieren info "Installiere Composer Dependencies..." composer install --no-interaction --prefer-dist --optimize-autoloader success "Composer Dependencies installiert" # 5. NPM Dependencies installieren info "Prüfe Node.js Installation..." if command -v npm &> /dev/null; then info "Installiere NPM Dependencies..." npm install success "NPM Dependencies installiert" else error "Node.js/NPM nicht gefunden - überspringe NPM Installation" fi # 6. Application Key generieren info "Generiere Application Key..." php artisan key:generate --force success "Application Key generiert" # 7. Erstelle proxy Netzwerk falls nicht vorhanden info "Erstelle Docker Proxy Netzwerk..." if ! docker network inspect proxy &> /dev/null; then docker network create proxy success "Proxy Netzwerk erstellt" else success "Proxy Netzwerk existiert bereits" fi # 8. Docker Container starten info "Starte Docker Container (Laravel Sail)..." ./vendor/bin/sail up -d success "Docker Container gestartet" # 9. Warte bis Datenbank bereit ist info "Warte auf Datenbank..." sleep 10 success "Datenbank sollte bereit sein" # 10. Datenbank Migrationen ausführen info "Führe Datenbank Migrationen aus..." ./vendor/bin/sail artisan migrate --force success "Datenbank Migrationen ausgeführt" # 11. Storage Links erstellen info "Erstelle Storage Links..." ./vendor/bin/sail artisan storage:link success "Storage Links erstellt" # 12. Cache leeren info "Leere Application Cache..." ./vendor/bin/sail artisan config:clear ./vendor/bin/sail artisan cache:clear ./vendor/bin/sail artisan view:clear ./vendor/bin/sail artisan route:clear success "Cache geleert" # 13. Optimierung (optional) info "Optimiere Application..." ./vendor/bin/sail artisan config:cache ./vendor/bin/sail artisan route:cache ./vendor/bin/sail artisan view:cache success "Application optimiert" echo "" echo "================================================" echo -e "${GREEN}✓ Initialisierung erfolgreich abgeschlossen!${NC}" echo "================================================" echo "" echo "Dein Projekt ist nun bereit:" echo " - Haupt-URL: https://mein.sterntours.test" echo " - Alternative URL: https://sterntours.test" echo " - Mailpit Dashboard: https://sterntours-mail.test" echo " - Vite Assets: https://assets.sterntours.test" echo "" echo "Nützliche Befehle:" echo " - Container stoppen: ./vendor/bin/sail down" echo " - Container starten: ./vendor/bin/sail up -d" echo " - Logs anzeigen: ./vendor/bin/sail logs -f" echo " - Artisan Befehle: ./vendor/bin/sail artisan " echo " - Tests ausführen: ./vendor/bin/sail test" echo ""