diff --git a/nixserver/src/components/Layout.tsx b/nixserver/src/components/Layout.tsx index 643e471..7e9d3df 100644 --- a/nixserver/src/components/Layout.tsx +++ b/nixserver/src/components/Layout.tsx @@ -475,8 +475,16 @@ export default function Layout() { } }, []) + // Initial fetch useEffect(() => { fetchVersion() }, [fetchVersion]) + // Auto-retry every 5 s while in error state (handles the service-restart window after an upgrade) + useEffect(() => { + if (!versionError) return + const t = setTimeout(fetchVersion, 5_000) + return () => clearTimeout(t) + }, [versionError, fetchVersion]) + const handleUpgrade = async () => { if (upgradeState === 'confirm') { setUpgradeState('running') diff --git a/server/src/core/exec.ts b/server/src/core/exec.ts index dbfa3a6..60116a6 100644 --- a/server/src/core/exec.ts +++ b/server/src/core/exec.ts @@ -24,7 +24,7 @@ const ALLOWED_COMMANDS = new Set([ // Network 'ss', 'ip', 'hostname', // System - 'uname', 'free', 'ps', + 'uname', 'uptime', 'free', 'ps', 'kill', // PHP 'php8.2', 'php8.3', // Fail2ban