opencrm/plesktest/setup-domain.sh

144 lines
3.7 KiB
Bash
Executable File

#!/bin/bash
# Setup-Skript für Plesk Test-Server
# Ausführen nachdem der Container gestartet wurde
CONTAINER="plesk-test"
ADMIN_PASSWORD="plesk1234!"
MAX_WAIT=300
echo "============================================"
echo "Plesk Test-Server Setup"
echo "============================================"
echo ""
# Prüfen ob Container läuft
if ! docker ps --format '{{.Names}}' | grep -q "^${CONTAINER}$"; then
echo "Container '$CONTAINER' läuft nicht!"
echo "Starte zuerst mit: docker-compose up -d"
exit 1
fi
echo "Warte auf Plesk (max. ${MAX_WAIT}s)..."
WAITED=0
while [ $WAITED -lt $MAX_WAIT ]; do
if docker exec $CONTAINER curl -sk https://localhost:8443/login 2>/dev/null | grep -q "Plesk"; then
echo "Plesk Panel ist erreichbar!"
break
fi
echo " ... warte ($WAITED s)"
sleep 10
WAITED=$((WAITED + 10))
done
if [ $WAITED -ge $MAX_WAIT ]; then
echo "Timeout! Plesk nicht bereit nach ${MAX_WAIT}s"
exit 1
fi
sleep 5
echo ""
echo "Konfiguriere Fail2Ban für Entwicklung..."
# Bantime auf 1 Minute setzen (Standard ist oft 10+ Minuten)
docker exec $CONTAINER bash -c 'cat > /etc/fail2ban/jail.d/dev-settings.conf << EOF
[DEFAULT]
bantime = 60
findtime = 60
maxretry = 10
[plesk-panel]
enabled = true
bantime = 60
findtime = 60
maxretry = 10
[plesk-apache]
enabled = true
bantime = 60
findtime = 60
maxretry = 10
[plesk-wordpress]
enabled = false
[plesk-proftpd]
enabled = false
[plesk-postfix]
enabled = false
[plesk-dovecot]
enabled = false
[ssh]
enabled = false
[recidive]
enabled = false
EOF'
# Fail2Ban neu laden
docker exec $CONTAINER bash -c 'systemctl restart fail2ban 2>/dev/null || service fail2ban restart 2>/dev/null || true'
echo " -> Bantime auf 60 Sekunden gesetzt"
echo ""
echo "Setze Admin-Passwort..."
docker exec $CONTAINER plesk bin admin --set-admin-password -passwd "$ADMIN_PASSWORD" 2>&1
echo ""
echo "Erstelle API-Key..."
docker exec $CONTAINER plesk bin secret_key --delete -filter "OpenCRM-Test" 2>/dev/null
KEY_OUTPUT=$(docker exec $CONTAINER plesk bin secret_key --create -description "OpenCRM-Test" 2>&1)
echo "$KEY_OUTPUT"
# Extrahiere den Key (UUID-Format)
API_KEY=$(echo "$KEY_OUTPUT" | grep -oE '[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}' | head -1)
echo ""
echo "============================================"
echo "SETUP ABGESCHLOSSEN"
echo "============================================"
echo ""
echo "Plesk Panel:"
echo " URL: https://localhost:8443"
echo " Benutzer: admin"
echo " Passwort: $ADMIN_PASSWORD"
echo ""
if [ -n "$API_KEY" ]; then
echo "API-Key: $API_KEY"
else
echo "API-Key: (siehe Ausgabe oben)"
fi
echo ""
echo "============================================"
echo "DOMAIN MANUELL ERSTELLEN"
echo "============================================"
echo ""
echo "Plesk prüft DNS-Einträge und blockiert externe Domains."
echo "Domain muss manuell im Panel erstellt werden:"
echo ""
echo "1. https://localhost:8443 öffnen"
echo "2. Login: admin / $ADMIN_PASSWORD"
echo "3. Tools & Settings > Security > Prohibited Domain Names"
echo " -> Policy auf 'None' setzen"
echo "4. Websites & Domains > Add Domain"
echo "5. Domain: stressfrei-wechseln.de"
echo "6. Mail-Service aktivieren"
echo ""
echo "============================================"
echo "OpenCRM Einstellungen"
echo "============================================"
echo ""
echo " Name: Plesk Test"
echo " Typ: PLESK"
echo " API-URL: https://localhost:8443"
if [ -n "$API_KEY" ]; then
echo " API-Key: $API_KEY"
else
echo " Benutzer: admin"
echo " Passwort: $ADMIN_PASSWORD"
fi
echo " Domain: stressfrei-wechseln.de"
echo ""
echo "============================================"