This commit is contained in:
Andras Bacsai 2023-06-22 21:17:53 +02:00
parent 37646bcfa0
commit 1304631aad
4 changed files with 47 additions and 35 deletions

View File

@ -44,7 +44,7 @@ public function installDocker()
public function validateServer() public function validateServer()
{ {
try { try {
$this->uptime = instant_remote_process(['uptime'], $this->server, false); $this->uptime = instant_remote_process(['uptime'], $this->server);
if ($this->uptime) { if ($this->uptime) {
$this->server->settings->is_reachable = true; $this->server->settings->is_reachable = true;
$this->server->settings->save(); $this->server->settings->save();
@ -61,7 +61,10 @@ public function validateServer()
$this->emit('serverValidated'); $this->emit('serverValidated');
} }
} catch (\Exception $e) { } catch (\Exception $e) {
return general_error_handler(err: $e, that: $this); $this->server->settings->is_reachable = false;
$this->server->settings->is_usable = false;
$this->server->settings->save();
return general_error_handler(customErrorMessage: "Server is not reachable. Reason: {$e->getMessage()}", that: $this);
} }
} }
public function delete() public function delete()

View File

@ -21,6 +21,9 @@ public function checkConnection()
Toaster::success('Server is reachable with this private key.'); Toaster::success('Server is reachable with this private key.');
} }
} catch (\Exception $e) { } catch (\Exception $e) {
$this->server->settings->is_reachable = false;
$this->server->settings->is_usable = false;
$this->server->settings->save();
return general_error_handler(customErrorMessage: "Server is not reachable. Reason: {$e->getMessage()}", that: $this); return general_error_handler(customErrorMessage: "Server is not reachable. Reason: {$e->getMessage()}", that: $this);
} }
} }

View File

@ -66,6 +66,7 @@ public function saveConfiguration()
$this->server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value; $this->server->proxy->last_saved_settings = Str::of($docker_compose_yml_base64)->pipe('md5')->value;
$this->server->proxy->redirect_url = $this->redirect_url; $this->server->proxy->redirect_url = $this->redirect_url;
$this->server->save(); $this->server->save();
instant_remote_process([ instant_remote_process([
"echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml", "echo '$docker_compose_yml_base64' | base64 -d > $proxy_path/docker-compose.yml",
], $this->server); ], $this->server);

View File

@ -7,41 +7,46 @@
<div wire:loading wire:target="checkProxySettingsInSync"> <div wire:loading wire:target="checkProxySettingsInSync">
<x-loading /> <x-loading />
</div> </div>
@isset($proxy_settings) <div wire:loading.remove>
@if ($selectedProxy->value === 'TRAEFIK_V2') @if ($proxy_settings)
<form wire:submit.prevent='saveConfiguration'> @if ($selectedProxy->value === 'TRAEFIK_V2')
<div class="flex items-center gap-2"> <form wire:submit.prevent='saveConfiguration'>
<h2>Proxy</h2> <div class="flex items-center gap-2">
<x-forms.button type="submit">Save</x-forms.button> <h2>Proxy</h2>
@if ($server->proxy->status === 'exited') <x-forms.button type="submit">Save</x-forms.button>
<x-forms.button wire:click.prevent="switchProxy">Switch Proxy</x-forms.button> @if ($server->proxy->status === 'exited')
@endif <x-forms.button wire:click.prevent="switchProxy">Switch Proxy</x-forms.button>
<livewire:server.proxy.status :server="$server" /> @endif
</div> <livewire:server.proxy.status :server="$server" />
<div class="pt-3 pb-4 ">Traefik v2</div>
@if (
$server->proxy->last_applied_settings &&
$server->proxy->last_saved_settings !== $server->proxy->last_applied_settings)
<div class="text-red-500 ">Configuration out of sync. Restart to get the new configs.
</div> </div>
@endif <div class="pt-3 pb-4 ">Traefik v2</div>
@if ($server->id !== 0) @if (
<x-forms.input id="redirect_url" label="Default redirect" $server->proxy->last_applied_settings &&
placeholder="https://coolify.io" /> $server->proxy->last_saved_settings !== $server->proxy->last_applied_settings)
@endif <div class="text-red-500 ">Configuration out of sync. Restart to get the new
<div class="container w-full mx-auto"> configs.
<livewire:activity-monitor :header="true" /> </div>
</div> @endif
<div class="flex flex-col gap-2"> @if ($server->id !== 0)
<x-forms.textarea label="Configuration file: traefik.conf" class="text-xs" noDirty <x-forms.input id="redirect_url" label="Default redirect"
name="proxy_settings" wire:model.defer="proxy_settings" rows="30" /> placeholder="https://coolify.io" />
<x-forms.button wire:click.prevent="resetProxy"> @endif
Reset configuration to default <div class="container w-full mx-auto">
</x-forms.button> <livewire:activity-monitor :header="true" />
</div> </div>
</form> <div class="flex flex-col gap-2">
<x-forms.textarea label="Configuration file: traefik.conf" class="text-xs" noDirty
name="proxy_settings" wire:model.defer="proxy_settings" rows="30" />
<x-forms.button wire:click.prevent="resetProxy">
Reset configuration to default
</x-forms.button>
</div>
</form>
@endif
@else
<div class="">Server is not validated. Validate first.</div>
@endif @endif
@endisset </div>
</div> </div>
@else @else
<div> <div>