#!/bin/bash # PHP Projekt Deployment Script für Netcup (nutzt bestehende docker-compose.yml) set -e echo "🚀 Projekt Deployment zu Netcup (nutzt deine docker-compose.yml)" echo "" # Prüfe ob Konfiguration angepasst wurde if grep -q "85.123.456.789" inventory/hosts.yml; then echo "❌ Bitte erst die Konfiguration anpassen!" echo "" echo "1. vim inventory/hosts.yml" echo " - Server IP ändern" echo " - Domain ändern" echo " - app_port prüfen (Port deiner App)" echo "" echo "2. Dann nochmal: ./deploy.sh" exit 1 fi LOCAL_APP_PATH=$(grep "local_app_path:" inventory/hosts.yml | awk '{print $2}' | tr -d '"') # Prüfe Projektstruktur echo "📁 Prüfe Projektstruktur..." FULL_PATH="$LOCAL_APP_PATH" if [ ! -d "$FULL_PATH" ]; then echo "❌ Projekt-Verzeichnis nicht gefunden: $FULL_PATH" exit 1 fi echo "✅ Projektstruktur OK:" echo " 📂 Projekt: $FULL_PATH" # Prüfe docker-compose.yml if [ -f "$FULL_PATH/docker-compose.yml" ]; then echo " ✅ docker-compose.yml gefunden im Root" elif [ -f "$FULL_PATH/docker/docker-compose.yml" ]; then echo " ✅ docker-compose.yml gefunden in docker/" else echo " ℹ️ Keine docker-compose.yml gefunden - wird automatisch erstellt" fi # Zeige docker-compose.yml Inhalt falls vorhanden if [ -f "$FULL_PATH/docker-compose.yml" ]; then echo "" echo "📋 Deine docker-compose.yml (erste 10 Zeilen):" head -10 "$FULL_PATH/docker-compose.yml" | sed 's/^/ /' elif [ -f "$FULL_PATH/docker/docker-compose.yml" ]; then echo "" echo "📋 Deine docker-compose.yml aus docker/ (erste 10 Zeilen):" head -10 "$FULL_PATH/docker/docker-compose.yml" | sed 's/^/ /' fi # Ping test echo "" echo "🔍 Teste Verbindung zum Server..." if ! ansible all -m ping; then echo "❌ Server nicht erreichbar. Prüfe:" echo " - IP-Adresse korrekt?" echo " - SSH-Key installiert? (ssh-copy-id root@deine-ip)" echo " - Server läuft?" exit 1 fi echo "✅ Server erreichbar!" echo "" # Wähle Deployment-Methode echo "🔧 Deployment-Optionen:" echo "1. Standard: Saubere Docker-Installation (empfohlen)" echo "2. Fallback: Debian Standard-Pakete (falls Probleme auftreten)" echo "" read -p "Wähle Option (1/2): " -n 1 -r echo if [[ $REPLY == "2" ]]; then PLAYBOOK="deploy-debian-fallback.yml" echo "📦 Verwende Debian Standard-Pakete" else PLAYBOOK="deploy.yml" echo "🐳 Verwende saubere Docker-Installation" fi # Deployment confirmation read -p "🚀 Projekt deployen? (y/N): " -n 1 -r echo if [[ ! $REPLY =~ ^[Yy]$ ]]; then echo "Deployment abgebrochen." exit 0 fi echo "🔧 Starte Deployment mit $PLAYBOOK..." echo "💡 Das Deployment nutzt deine bestehende docker-compose.yml!" echo "" ansible-playbook "$PLAYBOOK" echo "" echo "🎉 Deployment abgeschlossen!" echo "" # Zeige Ergebnisse DOMAIN=$(grep "domain:" inventory/hosts.yml | awk '{print $2}' | tr -d '"') echo "🌐 Dein Projekt ist verfügbar unter:" echo " https://$DOMAIN" echo "" echo "📊 Status prüfen:" echo " curl -I https://$DOMAIN" echo "" echo "🔧 Container-Status anschauen:" echo " make status" echo "" echo "🔧 Logs anschauen:" echo " make logs" echo "" echo "🔄 Nach Änderungen:" echo " make deploy"