user()->currentTeam()->id; return [ "echo-private:team.{$teamId},CloudflareTunnelConfigured" => 'refresh', ]; } public function refresh() { $this->server->refresh(); $this->isCloudflareTunnelsEnabled = $this->server->settings->is_cloudflare_tunnel; } 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]); } $this->isCloudflareTunnelsEnabled = $this->server->settings->is_cloudflare_tunnel; } catch (\Throwable $e) { return handleError($e, $this); } } public function toggleCloudflareTunnels() { try { $this->authorize('update', $this->server); remote_process(['docker rm -f coolify-cloudflared'], $this->server, false, 10); $this->isCloudflareTunnelsEnabled = false; $this->server->settings->is_cloudflare_tunnel = false; $this->server->settings->save(); if ($this->server->ip_previous) { $this->server->update(['ip' => $this->server->ip_previous]); $this->dispatch('success', 'Cloudflare Tunnel disabled.

Manually updated the server IP address to its previous IP address.'); } else { $this->dispatch('warning', 'Cloudflare Tunnel disabled. Action required: Update the server IP address to its real IP address in the Advanced settings.'); } } catch (\Throwable $e) { return handleError($e, $this); } } public function manualCloudflareConfig() { $this->authorize('update', $this->server); $this->isCloudflareTunnelsEnabled = true; $this->server->settings->is_cloudflare_tunnel = true; $this->server->settings->save(); $this->server->refresh(); $this->dispatch('success', 'Cloudflare Tunnel enabled.'); } public function automatedCloudflareConfig() { try { $this->authorize('update', $this->server); if (str($this->ssh_domain)->contains('https://')) { $this->ssh_domain = str($this->ssh_domain)->replace('https://', '')->replace('http://', '')->trim(); $this->ssh_domain = str($this->ssh_domain)->replace('/', ''); } $activity = ConfigureCloudflared::run($this->server, $this->cloudflare_token, $this->ssh_domain); $this->dispatch('activityMonitor', $activity->id); } catch (\Throwable $e) { return handleError($e, $this); } } public function render() { return view('livewire.server.cloudflare-tunnel'); } }