diff --git a/install/agent-install.sh b/install/agent-install.sh index 2c8c023..5a59c55 100644 --- a/install/agent-install.sh +++ b/install/agent-install.sh @@ -82,12 +82,20 @@ EOF echo "$code" } -echo "ServerManager Agent started (interval: ${INTERVAL}s)" +echo "ServerManager Agent started" +echo " Server: $SERVER_URL/api/metrics/push" +echo " Interval: ${INTERVAL}s" +echo " Host: $(hostname)" sleep 2 while true; do collect_metrics http_code=$(push_metrics) echo "[$(date)] HTTP $http_code" + if [ "$http_code" = "200" ]; then + true + elif [ "$http_code" = "0" ]; then + echo " curl failed — check SERVER_URL=$SERVER_URL" + fi sleep "$INTERVAL" done AGENTSCRIPT diff --git a/src/Services/AgentService.php b/src/Services/AgentService.php index ea44e9c..933efb0 100644 --- a/src/Services/AgentService.php +++ b/src/Services/AgentService.php @@ -37,10 +37,13 @@ class AgentService $agentKey = $server['agent_key']; $serverUrl = rtrim((App::getConfig()['app']['url'] ?? ''), '/'); - if (empty($serverUrl)) { - $serverUrl = ($_SERVER['HTTPS'] ?? '' === 'on' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? 'localhost'); + if (empty($serverUrl) || str_contains($serverUrl, 'localhost')) { + $serverUrl = ($_SERVER['HTTPS'] ?? '' === 'on' ? 'https://' : 'http://') . ($_SERVER['HTTP_HOST'] ?? 'sysadmin.lan'); } + // Replace localhost with actual hostname if still localhost + $serverUrl = preg_replace('/https?:\/\/localhost(:\d+)?/', 'http://sysadmin.lan$1', $serverUrl); + $scriptPath = $this->basePath . '/install/agent-install.sh'; if (!file_exists($scriptPath)) {