From e8d2744333f46b49b31bf1833b6d13d5fdda5f98 Mon Sep 17 00:00:00 2001 From: Serreau Jovann Date: Thu, 26 Mar 2026 18:13:26 +0100 Subject: [PATCH] Fix infra page crash when snapshot missing: provide default server values Template accesses server.hostname etc. but server was passed as empty array when infra.json does not exist. Now provides all expected keys with '?' defaults. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/Controller/AdminController.php | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Controller/AdminController.php b/src/Controller/AdminController.php index 1a41c8d..e4e5e28 100644 --- a/src/Controller/AdminController.php +++ b/src/Controller/AdminController.php @@ -707,9 +707,18 @@ class AdminController extends AbstractController { $path = $projectDir.'/var/infra.json'; if (!file_exists($path)) { + $emptyServer = [ + 'hostname' => '?', 'os' => '?', 'uptime' => '?', + 'cpu_model' => '?', 'cpu_cores' => '?', 'load_1m' => '?', 'load_5m' => '?', 'load_15m' => '?', 'load_percent' => '?', + 'ram_total' => '?', 'ram_used' => '?', 'ram_free' => '?', 'ram_percent' => '?', + 'disk_total' => '?', 'disk_used' => '?', 'disk_free' => '?', 'disk_percent' => '?', + 'caddy' => ['status' => 'unknown', 'info' => '?'], 'docker' => ['status' => 'unknown', 'info' => '?'], + 'ssl' => ['domain' => '?', 'issuer' => '?', 'valid_until' => '?', 'days_left' => '?', 'status' => 'unknown'], + ]; + return $this->render('admin/infra.html.twig', [ 'snapshot_missing' => true, - 'server' => [], 'containers' => [], 'redis_global' => ['connected' => false], + 'server' => $emptyServer, 'containers' => [], 'redis_global' => ['connected' => false], 'redis_dbs' => [], 'postgres' => ['connected' => false], 'pgbouncer' => ['connected' => false], 'generated_at' => null, ]);