fix: proxy switch
This commit is contained in:
parent
bcc61b0d8b
commit
1835a91467
@ -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
|
||||||
{
|
{
|
||||||
|
Loading…
x
Reference in New Issue
Block a user