151 lines
4.1 KiB
Bash
151 lines
4.1 KiB
Bash
#!/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 <command>"
|
|
echo " - Tests ausführen: ./vendor/bin/sail test"
|
|
echo ""
|
|
|