isFunctional()) {
            return false;
        }
        if ($server->isBuildServer()) {
            if ($server->proxy) {
                $server->proxy = null;
                $server->save();
            }
            return false;
        }
        $proxyType = $server->proxyType();
        if (is_null($proxyType) || $proxyType === 'NONE' || $server->proxy->force_stop) {
            return false;
        }
        ['uptime' => $uptime, 'error' => $error] = $server->validateConnection();
        if (! $uptime) {
            throw new \Exception($error);
        }
        if (! $server->isProxyShouldRun()) {
            if ($fromUI) {
                throw new \Exception('Proxy should not run. You selected the Custom Proxy.');
            } else {
                return false;
            }
        }
        if ($server->isSwarm()) {
            $status = getContainerStatus($server, 'coolify-proxy_traefik');
            $server->proxy->set('status', $status);
            $server->save();
            if ($status === 'running') {
                return false;
            }
            return true;
        } else {
            $status = getContainerStatus($server, 'coolify-proxy');
            if ($status === 'running') {
                $server->proxy->set('status', 'running');
                $server->save();
                return false;
            }
            if ($server->settings->is_cloudflare_tunnel) {
                return false;
            }
            $ip = $server->ip;
            if ($server->id === 0) {
                $ip = 'host.docker.internal';
            }
            $connection80 = @fsockopen($ip, '80');
            $connection443 = @fsockopen($ip, '443');
            $port80 = is_resource($connection80) && fclose($connection80);
            $port443 = is_resource($connection443) && fclose($connection443);
            if ($port80) {
                if ($fromUI) {
                    throw new \Exception("Port 80 is in use.
You must stop the process using this port.
Docs: https://coolify.io/docs
Discord: https://coollabs.io/discord");
                } else {
                    return false;
                }
            }
            if ($port443) {
                if ($fromUI) {
                    throw new \Exception("Port 443 is in use.
You must stop the process using this port.
Docs: https://coolify.io/docs
Discord: https://coollabs.io/discord");
                } else {
                    return false;
                }
            }
            return true;
        }
    }
}