5.4 KiB
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:
- Plesk Panel öffnen: https://localhost:8443
- Login: admin / plesk1234!
- Tools & Settings → Security → Prohibited Domain Names
- Policy auf None setzen
- Websites & Domains → Add Domain
- Domain:
stressfrei-wechseln.de - 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)
- Im Plesk Panel: Tools & Einstellungen → API
- Schlüssel hinzufügen
- Beschreibung eingeben (z.B. "OpenCRM")
- IP-Beschränkung optional
- 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
- Warten bis Plesk vollständig gestartet ist (Logs beobachten)
- HTTPS mit
-kFlag für selbstsigniertes Zertifikat - 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