server->ipv4 ?? $this->server->ipv6) ->usePassword($this->rootPassword) ->setTimeout(10); $provisionScriptUrl = route('provision-script', [ 'sudo_password' => $this->sudoPassword, 'hostname' => str($this->server->name)->slug()->toString(), 'server_id' => $this->server->id, ]); // Download the provision script and execute it // The script will run in the background $result = $ssh->execute("wget --output-document=provision.sh \"{$provisionScriptUrl}\" && chmod +x provision.sh && ./provision.sh &"); logger('executing script on server'); logger("wget --output-document=provision.sh \"{$provisionScriptUrl}\" && chmod +x provision.sh && ./provision.sh &"); if (! $result->isSuccessful()) { logger('failed to execute script on server'); logger($result->getOutput()); logger($result->getErrorOutput()); logger($result->getExitCode()); $this->server->update([ 'status' => ServerStatus::PROVISIONING_FAILED, ]); return; } $this->server->update([ 'status' => ServerStatus::PROVISIONING, ]); } }