diff --git a/app/Http/Controllers/V2/Admin/Server/MachineController.php b/app/Http/Controllers/V2/Admin/Server/MachineController.php index c84a293..39b2ac0 100644 --- a/app/Http/Controllers/V2/Admin/Server/MachineController.php +++ b/app/Http/Controllers/V2/Admin/Server/MachineController.php @@ -72,6 +72,7 @@ class MachineController extends Controller return $this->success([ 'id' => $machine->id, 'token' => $machine->token, + 'install_command' => $this->buildInstallCommand($request, $machine), ]); } @@ -191,12 +192,12 @@ class MachineController extends Controller private function buildInstallCommand(Request $request, ServerMachine $machine): string { - $panelUrl = rtrim((string) (config('app.url') ?: $request->getSchemeAndHttpHost()), '/'); + $panelUrl = rtrim((string) (admin_setting('app_url') ?: $request->getSchemeAndHttpHost()), '/'); $installerUrl = 'https://raw.githubusercontent.com/cedar2025/xboard-node/main/install.sh'; return sprintf( - 'bash <(curl -fsSL %s) --panel %s --token %s --machine-id %d --yes', - escapeshellarg($installerUrl), + 'curl -fsSL %s | sudo bash -s -- --mode machine --panel %s --token %s --machine-id %d', + $installerUrl, escapeshellarg($panelUrl), escapeshellarg($machine->token), $machine->id diff --git a/app/Http/Controllers/V2/Admin/Server/ManageController.php b/app/Http/Controllers/V2/Admin/Server/ManageController.php index 27af670..a5fc6f4 100644 --- a/app/Http/Controllers/V2/Admin/Server/ManageController.php +++ b/app/Http/Controllers/V2/Admin/Server/ManageController.php @@ -17,7 +17,7 @@ class ManageController extends Controller public function getNodes(Request $request) { $servers = ServerService::getAllServers()->map(function ($item) { - $item['groups'] = ServerGroup::whereIn('id', $item['group_ids'])->get(['name', 'id']); + $item['groups'] = ServerGroup::whereIn('id', $item['group_ids'] ?? [])->get(['name', 'id']); $item['parent'] = $item->parent; return $item; }); diff --git a/app/Models/Server.php b/app/Models/Server.php index 08a6586..c65754d 100644 --- a/app/Models/Server.php +++ b/app/Models/Server.php @@ -429,7 +429,7 @@ class Server extends Model public function groups() { - return ServerGroup::whereIn('id', $this->group_ids)->get(); + return ServerGroup::whereIn('id', $this->group_ids ?? [])->get(); } public function routes() diff --git a/public/assets/admin b/public/assets/admin index 2d65083..30dcb22 160000 --- a/public/assets/admin +++ b/public/assets/admin @@ -1 +1 @@ -Subproject commit 2d650830ae2730dc3ad8b2f367ab583529b0b115 +Subproject commit 30dcb220ebe01f5a98321d34dedc0ddb9d1ba248