|
@@ -4,6 +4,7 @@ namespace App\Listeners;
|
|
|
|
|
|
|
|
|
|
use App\Events\ModelPhyreServerCreated;
|
|
use App\Events\ModelPhyreServerCreated;
|
|
|
|
+use App\Models\PhyreServer;
|
|
use Illuminate\Remote\Connection;
|
|
use Illuminate\Remote\Connection;
|
|
use phpseclib3\Net\SSH2;
|
|
use phpseclib3\Net\SSH2;
|
|
use Spatie\Ssh\Ssh;
|
|
use Spatie\Ssh\Ssh;
|
|
@@ -23,15 +24,30 @@ class ModelPhyreServerCreatedListener
|
|
*/
|
|
*/
|
|
public function handle(ModelPhyreServerCreated $event): void
|
|
public function handle(ModelPhyreServerCreated $event): void
|
|
{
|
|
{
|
|
-
|
|
|
|
|
|
+ $findPhyreServer = PhyreServer::where('id', $event->model->id)->first();
|
|
|
|
+ if (!$findPhyreServer) {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+ if ($findPhyreServer->status == 'installing') {
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
$username = $event->model->username;
|
|
$username = $event->model->username;
|
|
$password = $event->model->password;
|
|
$password = $event->model->password;
|
|
$ip = $event->model->ip;
|
|
$ip = $event->model->ip;
|
|
|
|
|
|
$ssh = new SSH2($ip);
|
|
$ssh = new SSH2($ip);
|
|
if ($ssh->login($username, $password)) {
|
|
if ($ssh->login($username, $password)) {
|
|
- $ssh->exec('wget https://raw.githubusercontent.com/CloudVisionApps/PhyrePanel/main/installers/install.sh && chmod +x install.sh && ./install.sh >phyre-install.log 2>&1 </dev/null &');
|
|
|
|
- }
|
|
|
|
|
|
|
|
|
|
+ $ssh->exec('wget https://raw.githubusercontent.com/CloudVisionApps/PhyrePanel/main/installers/install.sh');
|
|
|
|
+ $ssh->exec('chmod +x install.sh');
|
|
|
|
+ $ssh->exec('./install.sh >phyre-install.log 2>&1 </dev/null &');
|
|
|
|
+
|
|
|
|
+ $findPhyreServer->status = 'installing';
|
|
|
|
+ $findPhyreServer->save();
|
|
|
|
+
|
|
|
|
+ } else {
|
|
|
|
+ $findPhyreServer->status = 'can\'t connect to server';
|
|
|
|
+ $findPhyreServer->save();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|