diff --git a/app/Actions/CoolifyTask/PrepareCoolifyTask.php b/app/Actions/CoolifyTask/PrepareCoolifyTask.php
index b5b5a8853..e6a549756 100644
--- a/app/Actions/CoolifyTask/PrepareCoolifyTask.php
+++ b/app/Actions/CoolifyTask/PrepareCoolifyTask.php
@@ -39,7 +39,7 @@ class PrepareCoolifyTask
public function __invoke(): Activity
{
- $job = new CoolifyTask($this->activity, ignore_errors: $this->remoteProcessArgs->ignore_errors, call_event_on_finish: $this->remoteProcessArgs->call_event_on_finish);
+ $job = new CoolifyTask($this->activity, ignore_errors: $this->remoteProcessArgs->ignore_errors, call_event_on_finish: $this->remoteProcessArgs->call_event_on_finish, call_event_data: $this->remoteProcessArgs->call_event_data);
dispatch($job);
$this->activity->refresh();
return $this->activity;
diff --git a/app/Actions/CoolifyTask/RunRemoteProcess.php b/app/Actions/CoolifyTask/RunRemoteProcess.php
index 327d46c68..737b4babe 100644
--- a/app/Actions/CoolifyTask/RunRemoteProcess.php
+++ b/app/Actions/CoolifyTask/RunRemoteProcess.php
@@ -21,6 +21,8 @@ class RunRemoteProcess
public $call_event_on_finish = null;
+ public $call_event_data = null;
+
protected $time_start;
protected $current_time;
@@ -34,7 +36,7 @@ class RunRemoteProcess
/**
* Create a new job instance.
*/
- public function __construct(Activity $activity, bool $hide_from_output = false, bool $ignore_errors = false, $call_event_on_finish = null)
+ public function __construct(Activity $activity, bool $hide_from_output = false, bool $ignore_errors = false, $call_event_on_finish = null, $call_event_data = null)
{
if ($activity->getExtraProperty('type') !== ActivityTypes::INLINE->value) {
@@ -45,6 +47,7 @@ class RunRemoteProcess
$this->hide_from_output = $hide_from_output;
$this->ignore_errors = $ignore_errors;
$this->call_event_on_finish = $call_event_on_finish;
+ $this->call_event_data = $call_event_data;
}
public static function decodeOutput(?Activity $activity = null): string
@@ -111,9 +114,16 @@ class RunRemoteProcess
}
if ($this->call_event_on_finish) {
try {
- event(resolve("App\\Events\\$this->call_event_on_finish", [
- 'userId' => $this->activity->causer_id,
- ]));
+ ray($this->call_event_data);
+ if ($this->call_event_data) {
+ event(resolve("App\\Events\\$this->call_event_on_finish", [
+ "data" => $this->call_event_data,
+ ]));
+ } else {
+ event(resolve("App\\Events\\$this->call_event_on_finish", [
+ 'userId' => $this->activity->causer_id,
+ ]));
+ }
} catch (\Throwable $e) {
ray($e);
}
diff --git a/app/Actions/Proxy/StartProxy.php b/app/Actions/Proxy/StartProxy.php
index a781ab442..ab635fc65 100644
--- a/app/Actions/Proxy/StartProxy.php
+++ b/app/Actions/Proxy/StartProxy.php
@@ -2,7 +2,7 @@
namespace App\Actions\Proxy;
-use App\Events\ProxyStatusChanged;
+use App\Events\ProxyStarted;
use App\Models\Server;
use Illuminate\Support\Str;
use Lorisleiva\Actions\Concerns\AsAction;
@@ -54,13 +54,14 @@ class StartProxy
}
if ($async) {
- $activity = remote_process($commands, $server);
+ $activity = remote_process($commands, $server, callEventOnFinish: 'ProxyStarted', callEventData: $server);
return $activity;
} else {
instant_remote_process($commands, $server);
$server->proxy->set('status', 'running');
$server->proxy->set('type', $proxyType);
$server->save();
+ ProxyStarted::dispatch($server);
return 'OK';
}
} catch (\Throwable $e) {
diff --git a/app/Data/CoolifyTaskArgs.php b/app/Data/CoolifyTaskArgs.php
index cc717561f..e1e43f2f0 100644
--- a/app/Data/CoolifyTaskArgs.php
+++ b/app/Data/CoolifyTaskArgs.php
@@ -21,6 +21,7 @@ class CoolifyTaskArgs extends Data
public ?string $status = null ,
public bool $ignore_errors = false,
public $call_event_on_finish = null,
+ public $call_event_data = null
) {
if(is_null($status)){
$this->status = ProcessStatus::QUEUED->value;
diff --git a/app/Events/ProxyStarted.php b/app/Events/ProxyStarted.php
new file mode 100644
index 000000000..c77fe08b0
--- /dev/null
+++ b/app/Events/ProxyStarted.php
@@ -0,0 +1,16 @@
+ $this->activity,
'ignore_errors' => $this->ignore_errors,
- 'call_event_on_finish' => $this->call_event_on_finish
+ 'call_event_on_finish' => $this->call_event_on_finish,
+ 'call_event_data' => $this->call_event_data
]);
$remote_process();
diff --git a/app/Listeners/ProxyStartedNotification.php b/app/Listeners/ProxyStartedNotification.php
new file mode 100644
index 000000000..62131c22a
--- /dev/null
+++ b/app/Listeners/ProxyStartedNotification.php
@@ -0,0 +1,21 @@
+server = data_get($event, 'server');
+ $this->server->setupDefault404Redirect();
+ $this->server->setupDynamicProxyConfiguration();
+ }
+}
diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php
index a9b4496b4..0e9be72d1 100644
--- a/app/Providers/EventServiceProvider.php
+++ b/app/Providers/EventServiceProvider.php
@@ -2,8 +2,10 @@
namespace App\Providers;
+use App\Events\ProxyStarted;
use App\Listeners\MaintenanceModeDisabledNotification;
use App\Listeners\MaintenanceModeEnabledNotification;
+use App\Listeners\ProxyStartedNotification;
use Illuminate\Foundation\Events\MaintenanceModeDisabled;
use Illuminate\Foundation\Events\MaintenanceModeEnabled;
use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider;
@@ -17,9 +19,9 @@ class EventServiceProvider extends ServiceProvider
MaintenanceModeDisabled::class => [
MaintenanceModeDisabledNotification::class,
],
- // Registered::class => [
- // SendEmailVerificationNotification::class,
- // ],
+ ProxyStarted::class => [
+ ProxyStartedNotification::class,
+ ],
];
public function boot(): void
{
diff --git a/bootstrap/helpers/remoteProcess.php b/bootstrap/helpers/remoteProcess.php
index 13905391e..0aba82ea1 100644
--- a/bootstrap/helpers/remoteProcess.php
+++ b/bootstrap/helpers/remoteProcess.php
@@ -24,7 +24,8 @@ function remote_process(
?string $type_uuid = null,
?Model $model = null,
bool $ignore_errors = false,
- $callEventOnFinish = null
+ $callEventOnFinish = null,
+ $callEventData = null
): Activity {
if (is_null($type)) {
$type = ActivityTypes::INLINE->value;
@@ -50,6 +51,7 @@ function remote_process(
model: $model,
ignore_errors: $ignore_errors,
call_event_on_finish: $callEventOnFinish,
+ call_event_data: $callEventData,
),
])();
}
diff --git a/resources/views/livewire/server/proxy.blade.php b/resources/views/livewire/server/proxy.blade.php
index 60828ec3d..49bf654a6 100644
--- a/resources/views/livewire/server/proxy.blade.php
+++ b/resources/views/livewire/server/proxy.blade.php
@@ -13,7 +13,10 @@