Legt den A/AAAA-Record fuer einen Namen in Plesk an bzw. aktualisiert ihn und holt anschliessend per DNS-01-Challenge ein Wildcard-Zertifikat von Let's Encrypt. Alle Bestandteile werden einzeln abgelegt, zusaetzlich als kombinierte bundle.pem und als passwortgeschuetzte cert.pfx. - Plesk-Anbindung ueber die XML-API (Zone finden, Records lesen/anlegen/loeschen) - ACME-Order mit dns-01, Account-Key wird wiederverwendet - Propagations-Check gegen die autoritativen Nameserver der Zone, bricht vor der Validierung ab statt einen Fehlversuch bei Let's Encrypt zu verbrennen - Renewal-Check: laeuft idempotent, taugt so direkt fuer den Cron - Docker-Container, Konfiguration ueber .env, Ausgabe im Projektverzeichnis - Tests ohne echten Plesk-Server bzw. ohne Zertifikatsausstellung Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
18 lines
528 B
YAML
18 lines
528 B
YAML
version: "3.8"
|
|
|
|
services:
|
|
wildcard-cert:
|
|
build: .
|
|
image: wildcard-lets-encrypt-cert-plesk-creator:latest
|
|
env_file:
|
|
- .env
|
|
# Damit die Zertifikate auf dem Host nicht root gehoeren.
|
|
user: "${PUID:-1000}:${PGID:-1000}"
|
|
volumes:
|
|
- ./certs:/app/certs # hier landen alle Zertifikatsdateien
|
|
- ./data:/app/data # ACME-Account-Key (wiederverwenden = keine Rate-Limits)
|
|
environment:
|
|
CERT_OUTPUT_DIR: /app/certs
|
|
ACME_ACCOUNT_DIR: /app/data
|
|
TZ: "${TZ:-Europe/Berlin}"
|