!empty($_POST["force"])]); $messages[] = "Update ausgerollt: " . $result["from_version"] . " → " . $result["to_version"]; $messages[] = $result["copied"] . " Dateien kopiert, " . $result["backed_up"] . " gesichert."; $messages[] = "Sicherungsverzeichnis: " . $result["backup_dir"]; $hook = $result["hook"]; if (is_array($hook)) { $applied = $hook["migrations"]["applied"] ?? []; if ($applied !== []) { $messages[] = "Migrationen ausgeführt: " . implode(", ", $applied); } if (empty($hook["success"])) { // The files are deployed; only the post-update step failed. if (!empty($hook["failed_migration"])) { $errors[] = "Die Dateien wurden ausgerollt, aber die Migration \"" . (string) $hook["failed_migration"] . "\" ist fehlgeschlagen: " . (string) ($hook["error"] ?? ""); $errors[] = "Verbleibende Migrationen wurden nicht ausgeführt. " . "Nach Behebung der Ursache unten \"Migrationen ausführen\" verwenden."; } else { $errors[] = "Die Dateien wurden ausgerollt, aber der Post-Update-Hook ist " . "fehlgeschlagen: " . (string) ($hook["error"] ?? ""); } } } manageHeartbeatSendQuietly(); } elseif ($action === "migrate") { $report = manageUpdateRunMigrations(); if ($report["applied"] !== []) { $messages[] = "Migrationen ausgeführt: " . implode(", ", $report["applied"]); } if (!$report["success"]) { $errors[] = "Migration \"" . (string) $report["failed"] . "\" ist fehlgeschlagen: " . (string) $report["error"]; } elseif ($report["applied"] === []) { $messages[] = "Keine offenen Migrationen."; } } elseif ($action === "heartbeat") { $result = manageHeartbeatSend(); $messages[] = "Heartbeat gesendet. Aktuelles Release: " . ($result["latest"] !== "" ? $result["latest"] : "keines") . "."; } elseif ($action === "download") { $path = manageBackupPath((string) ($_POST["filename"] ?? "")); $size = filesize($path); $handle = fopen($path, "rb"); if ($size === false || $handle === false) { throw new RuntimeException("Backup konnte nicht geöffnet werden."); } header("Content-Type: application/zip"); header("Content-Disposition: attachment; filename=\"" . addcslashes(basename($path), "\"\\") . "\""); header("Content-Length: " . (string) $size); header("Cache-Control: private, no-store"); header("X-Content-Type-Options: nosniff"); fpassthru($handle); fclose($handle); exit; } } catch (Throwable $exception) { $errors[] = $exception->getMessage(); } } $status = manageClientStatus(); $capabilities = manageRemoteCapabilities(); ?>
Der Manage-Client ist nicht konfiguriert. In manage-client/config.php müssen
MANAGE_SERVER_URL, MANAGE_INSTANCE und MANAGE_TOKEN gesetzt sein.
Installierte Version
Aktuelles Release
Lokale Backups
Letztes:
Offene Migrationen
Version steht bereit. Vor dem Ausrollen sollte ein aktuelles Backup vorliegen.
Es wurde noch kein Backup erstellt.
| Datei | Erstellt | Auslöser | Dateien | Größe | Upload | |
|---|---|---|---|---|---|---|
| "; } } ?> |
Konfigurierte Backup-Ziele ohne Systemunterstützung: . Diese Uploads werden fehlschlagen.