fix: proxy switch
This commit is contained in:
		| @@ -114,7 +114,6 @@ class RunRemoteProcess | |||||||
|         } |         } | ||||||
|         if ($this->call_event_on_finish) { |         if ($this->call_event_on_finish) { | ||||||
|             try { |             try { | ||||||
|                 ray($this->call_event_data); |  | ||||||
|                 if ($this->call_event_data) { |                 if ($this->call_event_data) { | ||||||
|                     event(resolve("App\\Events\\$this->call_event_on_finish", [ |                     event(resolve("App\\Events\\$this->call_event_on_finish", [ | ||||||
|                         "data" => $this->call_event_data, |                         "data" => $this->call_event_data, | ||||||
|   | |||||||
| @@ -2,7 +2,6 @@ | |||||||
| 
 | 
 | ||||||
| namespace App\Events; | namespace App\Events; | ||||||
| 
 | 
 | ||||||
| use App\Models\Server; |  | ||||||
| use Illuminate\Broadcasting\InteractsWithSockets; | use Illuminate\Broadcasting\InteractsWithSockets; | ||||||
| use Illuminate\Foundation\Events\Dispatchable; | use Illuminate\Foundation\Events\Dispatchable; | ||||||
| use Illuminate\Queue\SerializesModels; | use Illuminate\Queue\SerializesModels; | ||||||
| @@ -10,7 +9,8 @@ use Illuminate\Queue\SerializesModels; | |||||||
| class ProxyStarted | class ProxyStarted | ||||||
| { | { | ||||||
|     use Dispatchable, InteractsWithSockets, SerializesModels; |     use Dispatchable, InteractsWithSockets, SerializesModels; | ||||||
|     public function __construct(public Server $server) |     public function __construct(public $data) | ||||||
|     { |     { | ||||||
|  | 
 | ||||||
|     } |     } | ||||||
| } | } | ||||||
|   | |||||||
| @@ -14,7 +14,7 @@ class ProxyStartedNotification | |||||||
| 
 | 
 | ||||||
|     public function handle(ProxyStarted $event): void |     public function handle(ProxyStarted $event): void | ||||||
|     { |     { | ||||||
|         $this->server = data_get($event, 'server'); |         $this->server = data_get($event, 'data'); | ||||||
|         $this->server->setupDefault404Redirect(); |         $this->server->setupDefault404Redirect(); | ||||||
|         $this->server->setupDynamicProxyConfiguration(); |         $this->server->setupDynamicProxyConfiguration(); | ||||||
|     } |     } | ||||||
|   | |||||||
| @@ -11,7 +11,15 @@ class DynamicConfigurations extends Component | |||||||
|     public ?Server $server = null; |     public ?Server $server = null; | ||||||
|     public $parameters = []; |     public $parameters = []; | ||||||
|     public Collection $contents; |     public Collection $contents; | ||||||
|     protected $listeners = ['loadDynamicConfigurations', 'refresh' => '$refresh']; |     public function getListeners() | ||||||
|  |     { | ||||||
|  |         $teamId = auth()->user()->currentTeam()->id; | ||||||
|  |         return [ | ||||||
|  |             "echo-private:team.{$teamId},ProxyStatusChanged" => 'loadDynamicConfigurations', | ||||||
|  |             'loadDynamicConfigurations', | ||||||
|  |             'refresh' => '$refresh' | ||||||
|  |         ]; | ||||||
|  |     } | ||||||
|     protected $rules = [ |     protected $rules = [ | ||||||
|         'contents.*' => 'nullable|string', |         'contents.*' => 'nullable|string', | ||||||
|     ]; |     ]; | ||||||
| @@ -24,6 +32,7 @@ class DynamicConfigurations extends Component | |||||||
|         $files = $files->sort(); |         $files = $files->sort(); | ||||||
|         if ($files->contains('coolify.yaml')) { |         if ($files->contains('coolify.yaml')) { | ||||||
|             $files = $files->filter(fn ($file) => $file !== 'coolify.yaml')->prepend('coolify.yaml'); |             $files = $files->filter(fn ($file) => $file !== 'coolify.yaml')->prepend('coolify.yaml'); | ||||||
|  |             $files = $files->filter(fn ($file) => $file !== 'Caddyfile')->prepend('Caddyfile'); | ||||||
|         } |         } | ||||||
|         $contents = collect([]); |         $contents = collect([]); | ||||||
|         foreach ($files as $file) { |         foreach ($files as $file) { | ||||||
| @@ -31,6 +40,7 @@ class DynamicConfigurations extends Component | |||||||
|             $contents[$without_extension] = instant_remote_process(["cat {$proxy_path}/dynamic/{$file}"], $this->server); |             $contents[$without_extension] = instant_remote_process(["cat {$proxy_path}/dynamic/{$file}"], $this->server); | ||||||
|         } |         } | ||||||
|         $this->contents = $contents; |         $this->contents = $contents; | ||||||
|  |         $this->dispatch('refresh'); | ||||||
|     } |     } | ||||||
|     public function mount() |     public function mount() | ||||||
|     { |     { | ||||||
|   | |||||||
| @@ -75,12 +75,7 @@ class Configuration extends Component | |||||||
| 
 | 
 | ||||||
|         $this->settings->save(); |         $this->settings->save(); | ||||||
|         $this->server = Server::findOrFail(0); |         $this->server = Server::findOrFail(0); | ||||||
|         $this->setup_instance_fqdn(); |         $this->server->setupDynamicProxyConfiguration(); | ||||||
|         $this->dispatch('success', 'Instance settings updated successfully!'); |         $this->dispatch('success', 'Instance settings updated successfully!'); | ||||||
|     } |     } | ||||||
| 
 |  | ||||||
|     private function setup_instance_fqdn() |  | ||||||
|     { |  | ||||||
|         $this->server->setupDynamicProxyConfiguration(); |  | ||||||
|     } |  | ||||||
| } | } | ||||||
|   | |||||||
| @@ -3,7 +3,6 @@ | |||||||
| namespace App\Models; | namespace App\Models; | ||||||
| 
 | 
 | ||||||
| use App\Actions\Server\InstallDocker; | use App\Actions\Server\InstallDocker; | ||||||
| use App\Enums\ProxyStatus; |  | ||||||
| use App\Enums\ProxyTypes; | use App\Enums\ProxyTypes; | ||||||
| use App\Notifications\Server\Revived; | use App\Notifications\Server\Revived; | ||||||
| use App\Notifications\Server\Unreachable; | use App\Notifications\Server\Unreachable; | ||||||
| @@ -125,7 +124,6 @@ class Server extends BaseModel | |||||||
|         $dynamic_conf_path = $this->proxyPath() . "/dynamic"; |         $dynamic_conf_path = $this->proxyPath() . "/dynamic"; | ||||||
|         $proxy_type = $this->proxyType(); |         $proxy_type = $this->proxyType(); | ||||||
|         $redirect_url = $this->proxy->redirect_url; |         $redirect_url = $this->proxy->redirect_url; | ||||||
| 
 |  | ||||||
|         if ($proxy_type === 'TRAEFIK_V2') { |         if ($proxy_type === 'TRAEFIK_V2') { | ||||||
|             $default_redirect_file = "$dynamic_conf_path/default_redirect_404.yaml"; |             $default_redirect_file = "$dynamic_conf_path/default_redirect_404.yaml"; | ||||||
|         } else if ($proxy_type === 'CADDY') { |         } else if ($proxy_type === 'CADDY') { | ||||||
| @@ -199,7 +197,6 @@ class Server extends BaseModel | |||||||
|             $conf  = ":80, :443 { |             $conf  = ":80, :443 { | ||||||
|     redir $redirect_url |     redir $redirect_url | ||||||
| }";
 | }";
 | ||||||
| ray($conf); |  | ||||||
|             $conf = |             $conf = | ||||||
|                 "# This file is automatically generated by Coolify.\n" . |                 "# This file is automatically generated by Coolify.\n" . | ||||||
|                 "# Do not edit it manually (only if you know what are you doing).\n\n" . |                 "# Do not edit it manually (only if you know what are you doing).\n\n" . | ||||||
| @@ -224,7 +221,6 @@ ray($conf); | |||||||
|     { |     { | ||||||
|         $settings = InstanceSettings::get(); |         $settings = InstanceSettings::get(); | ||||||
|         $dynamic_config_path = $this->proxyPath() . "/dynamic"; |         $dynamic_config_path = $this->proxyPath() . "/dynamic"; | ||||||
|         if ($this) { |  | ||||||
|         if ($this->proxyType() === 'TRAEFIK_V2') { |         if ($this->proxyType() === 'TRAEFIK_V2') { | ||||||
|             $file = "$dynamic_config_path/coolify.yaml"; |             $file = "$dynamic_config_path/coolify.yaml"; | ||||||
|             if (empty($settings->fqdn)) { |             if (empty($settings->fqdn)) { | ||||||
| @@ -370,7 +366,6 @@ $schema://$host { | |||||||
|             } |             } | ||||||
|         } |         } | ||||||
|     } |     } | ||||||
|     } |  | ||||||
|     public function reloadCaddy() |     public function reloadCaddy() | ||||||
|     { |     { | ||||||
|         return instant_remote_process([ |         return instant_remote_process([ | ||||||
| @@ -396,16 +391,16 @@ $schema://$host { | |||||||
|     } |     } | ||||||
|     public function proxyType() |     public function proxyType() | ||||||
|     { |     { | ||||||
|         $proxyType = $this->proxy->get('type'); |         // $proxyType = $this->proxy->get('type');
 | ||||||
|         if ($proxyType === ProxyTypes::NONE->value) { |         // if ($proxyType === ProxyTypes::NONE->value) {
 | ||||||
|             return $proxyType; |         //     return $proxyType;
 | ||||||
|         } |         // }
 | ||||||
|         // if (is_null($proxyType)) {
 |         // if (is_null($proxyType)) {
 | ||||||
|         //     $this->proxy->type = ProxyTypes::TRAEFIK_V2->value;
 |         //     $this->proxy->type = ProxyTypes::TRAEFIK_V2->value;
 | ||||||
|         //     $this->proxy->status = ProxyStatus::EXITED->value;
 |         //     $this->proxy->status = ProxyStatus::EXITED->value;
 | ||||||
|         //     $this->save();
 |         //     $this->save();
 | ||||||
|         // }
 |         // }
 | ||||||
|         return $this->proxy->get('type'); |         return data_get($this->proxy, 'type.type'); | ||||||
|     } |     } | ||||||
|     public function scopeWithProxy(): Builder |     public function scopeWithProxy(): Builder | ||||||
|     { |     { | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Andras Bacsai
					Andras Bacsai