opencrm/plesktest
Stefan Hacker 31f807fbd0 first commit 2026-01-29 01:16:54 +01:00
..
plesk-data first commit 2026-01-29 01:16:54 +01:00
.gitignore first commit 2026-01-29 01:16:54 +01:00
README.md first commit 2026-01-29 01:16:54 +01:00
docker-compose.yml first commit 2026-01-29 01:16:54 +01:00
setup-domain.sh first commit 2026-01-29 01:16:54 +01:00

README.md

Plesk Test Server

Docker-basierter Plesk-Testserver für die Entwicklung und das Testen der Email-Provisionierung.

Schnellstart

# Container starten
docker-compose up -d

# Logs anzeigen (erster Start dauert einige Minuten)
docker-compose logs -f

# Nach vollständigem Start: Passwort + API-Key einrichten
./setup-domain.sh

Erster Start dauert 5-10 Minuten - Plesk muss sich initialisieren.

Das setup-domain.sh Skript:

  • Wartet bis Plesk bereit ist (max. 5 Minuten, mit Timeout)
  • Konfiguriert Fail2Ban für Entwicklung (Bantime: 60 Sekunden, max 10 Fehlversuche)
  • Setzt das Admin-Passwort auf plesk1234!
  • Generiert einen API-Key
  • Gibt Anleitung zur manuellen Domain-Erstellung aus

Zugangsdaten

Feld Wert
URL https://localhost:8443
Benutzer admin
Passwort plesk1234!

Domain einrichten (manuell)

Plesk prüft DNS-Einträge und blockiert externe Domains per Default. Die Domain muss daher manuell im Panel erstellt werden:

  1. Plesk Panel öffnen: https://localhost:8443
  2. Login: admin / plesk1234!
  3. Tools & SettingsSecurityProhibited Domain Names
    • Policy auf None setzen
  4. Websites & DomainsAdd Domain
  5. Domain: stressfrei-wechseln.de
  6. Mail-Service aktivieren

API-Authentifizierung

Option 1: Benutzername + Passwort

Die einfachste Methode für Tests:

Benutzername: admin
Passwort: plesk1234!

In OpenCRM Email-Provider Einstellungen:

  • API-URL: https://localhost:8443
  • Benutzername: admin
  • Passwort: plesk1234!

Option 2: API-Key (empfohlen für Produktion)

  1. Im Plesk Panel: Tools & EinstellungenAPI
  2. Schlüssel hinzufügen
  3. Beschreibung eingeben (z.B. "OpenCRM")
  4. IP-Beschränkung optional
  5. Schlüssel kopieren

In OpenCRM Email-Provider Einstellungen:

  • API-URL: https://localhost:8443
  • API-Key: <generierter-schlüssel>
  • Benutzername/Passwort leer lassen

Authentifizierungs-Priorität in OpenCRM

OpenCRM verwendet entweder API-Key oder Benutzername/Passwort, nicht beides gleichzeitig:

API-Key Benutzername/Passwort Verwendet wird
Vorhanden egal Nur API-Key
Leer Vorhanden Basic Auth
Leer Leer Fehler

Warum? Wenn beide angegeben werden und eines davon falsch ist, würde Plesk trotzdem das funktionierende akzeptieren. Das führt zu verwirrenden Situationen beim Verbindungstest.

API-Key per CLI generieren

docker exec -it plesk-test plesk bin secret_key --create -description "OpenCRM" -ip-address ""

Schlüssel anzeigen:

docker exec -it plesk-test plesk bin secret_key --list

API testen

Verbindung testen

# Mit Benutzername/Passwort
curl -k -u admin:plesk1234! \
  "https://localhost:8443/api/v2/server"

# Mit API-Key
curl -k -H "X-API-Key: DEIN_API_KEY" \
  "https://localhost:8443/api/v2/server"

E-Mail-Adresse anlegen (REST API v2)

curl -k -u admin:plesk1234! \
  -X POST "https://localhost:8443/api/v2/cli/mail/call" \
  -H "Content-Type: application/json" \
  -d '{
    "params": [
      "--create", "test@stressfrei-wechseln.de",
      "-forwarding", "true",
      "-forwarding-addresses", "ziel@example.com"
    ]
  }'

E-Mail prüfen ob existiert

curl -k -u admin:plesk1234! \
  "https://localhost:8443/api/v2/cli/mail/call" \
  -H "Content-Type: application/json" \
  -d '{
    "params": ["--info", "test@stressfrei-wechseln.de"]
  }'

Verzeichnisstruktur

plesktest/
├── docker-compose.yml    # Docker Compose Konfiguration
├── setup-domain.sh       # Automatisches Setup-Skript
├── .gitignore            # Git-Ignores für Daten
├── README.md             # Diese Datei
└── plesk-data/           # Persistente Plesk-Daten (nicht in Git)

Befehle

# Starten
docker-compose up -d

# Stoppen
docker-compose down

# Stoppen + Daten löschen (Neustart)
docker-compose down -v
rm -rf plesk-data/*

# Logs anzeigen
docker-compose logs -f

# Shell im Container
docker exec -it plesk-test bash

# Plesk CLI
docker exec -it plesk-test plesk bin --help

Bekannte Einschränkungen

  • Selbstsigniertes Zertifikat: Browser zeigt Sicherheitswarnung
  • Keine echte Domain: DNS funktioniert nicht, nur für API-Tests geeignet
  • Ressourcen: Plesk benötigt ca. 2-4 GB RAM
  • Erster Start: Initialisierung dauert mehrere Minuten

Fehlerbehebung

Container startet nicht

# Prüfen ob Port belegt
lsof -i :8443

# Container-Status
docker-compose ps

# Detaillierte Logs
docker-compose logs plesk

API antwortet nicht

  1. Warten bis Plesk vollständig gestartet ist (Logs beobachten)
  2. HTTPS mit -k Flag für selbstsigniertes Zertifikat
  3. Firewall/Netzwerk prüfen

Domain anlegen schlägt fehl

Im Docker-Container funktionieren einige Plesk-Features eingeschränkt. Für reine API-Tests der Email-Funktionen reicht das Setup aus.

API-Anfragen werden nach mehreren Tests blockiert (Fail2Ban)

Das Setup-Script konfiguriert Fail2Ban mit kurzer Bantime (60 Sekunden). Falls du trotzdem geblockt wirst:

# Aktuell gebannte IPs anzeigen
docker exec plesk-test fail2ban-client status plesk-panel

# Alle IPs entbannen
docker exec plesk-test fail2ban-client unban --all

# Fail2Ban komplett deaktivieren (nur für Tests!)
docker exec plesk-test systemctl stop fail2ban