diff --git a/scripts/setup-simple.sh b/scripts/setup-simple.sh new file mode 100644 index 0000000..9d2eec5 --- /dev/null +++ b/scripts/setup-simple.sh @@ -0,0 +1,104 @@ +#!/bin/bash + +# Farben für Output +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +BLUE='\033[0;34m' +NC='\033[0m' # No Color + +echo -e "${BLUE}🔧 Stargirlnails Kiel - Einfaches Setup${NC}" +echo "=============================================" + +# Prüfe ob .env-Datei existiert +if [ ! -f .env ]; then + echo -e "${RED}❌ .env-Datei nicht gefunden!${NC}" + echo "Bitte erstelle eine .env-Datei mit DOMAIN und ADMIN_EMAIL" + exit 1 +fi + +# Extrahiere DOMAIN und ADMIN_EMAIL robust aus .env +DOMAIN=$(grep -E '^DOMAIN=' .env | cut -d '=' -f2- | tr -d '"') +ADMIN_EMAIL=$(grep -E '^ADMIN_EMAIL=' .env | cut -d '=' -f2- | tr -d '"') + +# Prüfe ob Variablen gesetzt sind +if [ -z "$DOMAIN" ]; then + echo -e "${RED}❌ DOMAIN nicht in .env gefunden!${NC}" + exit 1 +fi + +if [ -z "$ADMIN_EMAIL" ]; then + echo -e "${RED}❌ ADMIN_EMAIL nicht in .env gefunden!${NC}" + exit 1 +fi + +echo -e "${GREEN}✅ Domain: $DOMAIN${NC}" +echo -e "${GREEN}✅ Admin E-Mail: $ADMIN_EMAIL${NC}" + +# Erkenne Docker Compose-Version (docker-compose vs docker compose) +if command -v docker-compose >/dev/null 2>&1; then + DOCKER_COMPOSE="docker-compose" +elif docker compose version >/dev/null 2>&1; then + DOCKER_COMPOSE="docker compose" +else + echo -e "${RED}❌ Docker Compose nicht gefunden!${NC}" + echo "Bitte installiere Docker Compose" + exit 1 +fi + +# Prüfe, ob Docker Root-Rechte benötigt +SUDO="" +if ! docker info >/dev/null 2>&1; then + if command -v sudo >/dev/null 2>&1; then + SUDO="sudo " + echo -e "${YELLOW}⚠️ Docker benötigt Root-Rechte. Verwende 'sudo'.${NC}" + else + echo -e "${RED}❌ Docker läuft nicht und 'sudo' ist nicht verfügbar.${NC}" + echo "Bitte stelle sicher, dass Docker korrekt installiert ist und der Benutzer zur Docker-Gruppe gehört oder 'sudo' verfügbar ist." + exit 1 + fi +fi + +echo -e "${GREEN}✅ Verwende: ${SUDO}${DOCKER_COMPOSE}${NC}" + +# Erstelle Docker Volumes +echo -e "${YELLOW}📦 Erstelle Docker Volumes...${NC}" +${SUDO}docker volume create certbot-certs 2>/dev/null || true +${SUDO}docker volume create certbot-webroot 2>/dev/null || true +${SUDO}docker volume create storage-data 2>/dev/null || true + +# Verwende HTTP-only Nginx-Konfiguration für ersten Start +echo -e "${YELLOW}📝 Verwende HTTP-only Nginx-Konfiguration...${NC}" +cp nginx/nginx-http-only.conf nginx/nginx.conf + +# Starte alle Services +echo -e "${YELLOW}🚀 Starte alle Services...${NC}" +${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml up -d + +# Warte kurz +echo -e "${YELLOW}⏳ Warte auf Services...${NC}" +sleep 10 + +# Prüfe Status +echo -e "${YELLOW}🔍 Prüfe Service-Status...${NC}" + +if ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml ps | grep -q "Up"; then + echo -e "${GREEN}✅ Alle Services laufen!${NC}" + echo "" + echo -e "${BLUE}🌐 Deine Anwendung ist jetzt verfügbar unter:${NC}" + echo -e "${GREEN} http://$DOMAIN${NC}" + echo "" + echo -e "${BLUE}📋 Nützliche Befehle:${NC}" + echo " Status anzeigen: ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml ps" + echo " Logs anzeigen: ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml logs -f" + echo " Services stoppen: ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml down" + echo "" + echo -e "${YELLOW}⚠️ Hinweis:${NC}" + echo " - Die Anwendung läuft aktuell nur über HTTP" + echo " - Für HTTPS musst du die SSL-Zertifikate manuell einrichten" + echo " - Verwende: ./scripts/check-ssl-permissions.sh für SSL-Diagnose" +else + echo -e "${RED}❌ Einige Services sind nicht gestartet!${NC}" + echo "Prüfe die Logs: ${SUDO}${DOCKER_COMPOSE} -f docker-compose-prod.yml logs" + exit 1 +fi