coolify/app/Livewire/Server/CloudflareTunnels.php

55 lines
1.5 KiB
PHP
Raw Normal View History

2024-10-17 12:56:36 +00:00
<?php
namespace App\Livewire\Server;
use App\Models\Server;
use Livewire\Attributes\Validate;
2024-10-17 12:56:36 +00:00
use Livewire\Component;
class CloudflareTunnels extends Component
{
public Server $server;
#[Validate(['required', 'boolean'])]
2024-10-30 13:54:27 +00:00
public bool $isCloudflareTunnelsEnabled;
2024-10-17 12:56:36 +00:00
2024-10-30 13:54:27 +00:00
public function mount(string $server_uuid)
{
try {
$this->server = Server::ownedByCurrentTeam()->whereUuid($server_uuid)->firstOrFail();
if ($this->server->isLocalhost()) {
return redirect()->route('server.show', ['server_uuid' => $server_uuid]);
}
2024-10-30 13:54:27 +00:00
$this->isCloudflareTunnelsEnabled = $this->server->settings->is_cloudflare_tunnel;
} catch (\Throwable $e) {
2024-10-30 13:54:27 +00:00
return handleError($e, $this);
}
}
2024-10-17 12:56:36 +00:00
public function instantSave()
{
try {
$this->validate();
2024-10-30 13:54:27 +00:00
$this->server->settings->is_cloudflare_tunnel = $this->isCloudflareTunnelsEnabled;
2024-10-17 12:56:36 +00:00
$this->server->settings->save();
$this->dispatch('success', 'Server updated.');
} catch (\Throwable $e) {
2024-10-17 12:56:36 +00:00
return handleError($e, $this);
}
}
public function manualCloudflareConfig()
{
2024-10-30 13:54:27 +00:00
$this->isCloudflareTunnelsEnabled = true;
2024-10-17 12:56:36 +00:00
$this->server->settings->is_cloudflare_tunnel = true;
$this->server->settings->save();
$this->server->refresh();
$this->dispatch('success', 'Cloudflare Tunnels enabled.');
}
public function render()
{
return view('livewire.server.cloudflare-tunnels');
}
}