Verbessert Store

Prüfungen eigener Domains laufen jede Minute und werden bei unfertigen Adressen seltener

bin/check-custom-domains.php läuft jede Minute; CustomDomainService::due() prüft eine neue Adresse einen Tag lang bei jedem Lauf, eine Woche lang alle 15 Minuten und danach stündlich.

bin/check-custom-domains.php ist in der Crontab von www-data jede Minute eingeplant. CustomDomainService::due() prüft eine Adresse, die nicht aktiv ist, an ihrem ersten Tag bei jedem Lauf, im Rest ihrer ersten Woche alle 15 Minuten und danach stündlich; eine aktive täglich, und alle 15 Minuten, solange ihre letzte Prüfung ein Problem gefunden hat. Ein aktiver Host behält trotz fehlgeschlagener Prüfungen den Status active (public_hostnames.dnsProblemSince, problemEmailedAt, Migration 2564), und notifyAboutProblem() reserviert jede E-Mail, bevor sie gesendet wird. Kauflinks und Shop-Abschnitte im Website Builder verwenden healthyHostname() und fallen deshalb auf die Magpie-Adresse zurück, solange ein Problem besteht. StoreSeoService::sitemapXml() nimmt jetzt die Adresse des Shops statt SITE_URL, und canonical_url() nimmt einen optionalen Shop. docs/CUSTOM_DOMAINS.md hält das apt-Pinning für Caddy, den virtuellen Host 127.0.0.1:8080 und die Cron-Zeile für jede Minute fest.