43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| namespace App\Listeners;
 | |
| 
 | |
| use App\Events\ProxyStatusChanged;
 | |
| use App\Events\ProxyStatusChangedUI;
 | |
| use App\Models\Server;
 | |
| use Illuminate\Contracts\Queue\ShouldQueueAfterCommit;
 | |
| 
 | |
| class ProxyStatusChangedNotification implements ShouldQueueAfterCommit
 | |
| {
 | |
|     public function __construct() {}
 | |
| 
 | |
|     public function handle(ProxyStatusChanged $event)
 | |
|     {
 | |
|         $serverId = $event->data;
 | |
|         if (is_null($serverId)) {
 | |
|             return;
 | |
|         }
 | |
|         $server = Server::where('id', $serverId)->first();
 | |
|         if (is_null($server)) {
 | |
|             return;
 | |
|         }
 | |
|         $proxyContainerName = 'coolify-proxy';
 | |
|         $status = getContainerStatus($server, $proxyContainerName);
 | |
|         $server->proxy->set('status', $status);
 | |
|         $server->save();
 | |
| 
 | |
|         ProxyStatusChangedUI::dispatch($server->team_id);
 | |
|         if ($status === 'running') {
 | |
|             $server->setupDefaultRedirect();
 | |
|             $server->setupDynamicProxyConfiguration();
 | |
|             $server->proxy->force_stop = false;
 | |
|             $server->save();
 | |
|         }
 | |
|         if ($status === 'created') {
 | |
|             instant_remote_process([
 | |
|                 'docker rm -f coolify-proxy',
 | |
|             ], $server);
 | |
|         }
 | |
|     }
 | |
| }
 | 
