Skip to content

Commit 9310af0

Browse files
committed
Feat: New cf tunnel install flow
1 parent 0d3d5f4 commit 9310af0

File tree

3 files changed

+55
-53
lines changed

3 files changed

+55
-53
lines changed

app/Livewire/Server/Form.php

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,4 +238,12 @@ public function updatedServerSettingsServerTimezone($value)
238238
$this->server->settings->save();
239239
$this->dispatch('success', 'Server timezone updated.');
240240
}
241+
242+
public function manualCloudflareConfig()
243+
{
244+
$this->server->settings->is_cloudflare_tunnel = true;
245+
$this->server->settings->save();
246+
$this->server->refresh();
247+
$this->dispatch('success', 'Cloudflare Tunnels enabled.');
248+
}
241249
}

resources/views/livewire/server/configure-cloudflare-tunnels.blade.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,5 @@
22
<x-forms.input id="cloudflare_token" required label="Cloudflare Token" />
33
<x-forms.input id="ssh_domain" label="Configured SSH Domain" required
44
helper="The SSH Domain you configured in Cloudflare" />
5-
<x-forms.button type="submit" isHighlighted @click="modalOpen=false">Automated Configuration (experimental)</x-forms.button>
6-
<h3 class="text-center">Or</h3>
7-
<x-forms.button wire:click.prevent='alreadyConfigured' @click="modalOpen=false">I have already set up the tunnel manually on the server.</x-forms.button>
5+
<x-forms.button type="submit" isHighlighted @click="modalOpen=false">Automated Configuration</x-forms.button>
86
</form>

resources/views/livewire/server/form.blade.php

Lines changed: 46 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -117,65 +117,61 @@ class="px-4 py-2 cursor-pointer hover:bg-gray-100 dark:hover:bg-coolgray-300 tex
117117
</div>
118118
</div>
119119
</div>
120-
<div class="w-64">
121-
@if ($server->isFunctional())
122-
@if (!$server->isLocalhost())
123-
<x-forms.checkbox instantSave id="server.settings.is_build_server"
124-
label="Use it as a build server?" />
125-
<div class="flex items-center gap-1 pt-6">
126-
<h3 class="">Cloudflare Tunnels
127-
</h3>
120+
<div class="w-96">
121+
@if (!$server->isLocalhost())
122+
<x-forms.checkbox instantSave id="server.settings.is_build_server"
123+
label="Use it as a build server?" />
124+
<div class="flex flex-col gap-2 pt-6">
125+
<div class="flex items-center gap-1">
126+
<h3 class="text-lg font-semibold">Cloudflare Tunnels</h3>
128127
<x-helper class="inline-flex"
129-
helper="If you are using Cloudflare Tunnels, enable this. It will proxy all SSH requests to your server through Cloudflare.<br><span class='dark:text-warning'>Coolify does not install or set up Cloudflare (cloudflared) on your server.</span>" />
128+
helper="If you are using Cloudflare Tunnels, enable this. It will proxy all SSH requests to your server through Cloudflare.<br> You then can close your server's SSH port in the firewall of your hosting provider.<br><span class='dark:text-warning'>If you choose manual configuration, Coolify does not install or set up Cloudflare (cloudflared) on your server.</span>" />
130129
</div>
131130
@if ($server->settings->is_cloudflare_tunnel)
132131
<x-forms.checkbox instantSave id="server.settings.is_cloudflare_tunnel" label="Enabled" />
133-
@else
134-
<x-modal-input buttonTitle="Configure" title="Cloudflare Tunnels">
132+
@elseif (!$server->isFunctional())
133+
<div class="p-4 mb-4 text-sm text-yellow-800 bg-yellow-100 rounded-lg dark:bg-yellow-900 dark:text-yellow-300">
134+
<p>Please validate the server first. The SSH port needs to be open in the firewall on your hosting provider that coolify can validate the server and automatically configure cloudflare tunnels.</p>
135+
<p class="mt-2">For more information, please read our <a href="https://coolify.io/docs/knowledge-base/cloudflare/tunnels/" target="_blank" class="font-medium underline hover:text-yellow-600 dark:hover:text-yellow-200">Documentation</a>.</p>
136+
</div>
137+
@endif
138+
@if (!$server->settings->is_cloudflare_tunnel && $server->isFunctional())
139+
<x-modal-input buttonTitle="Automatic Configuration" title="Cloudflare Tunnels" class="w-full">
135140
<livewire:server.configure-cloudflare-tunnels :server_id="$server->id" />
136141
</x-modal-input>
137142
@endif
138-
@if (!$server->isBuildServer())
139-
<h3 class="pt-6">Swarm <span class="text-xs text-neutral-500">(experimental)</span></h3>
140-
<div class="pb-4">Read the docs <a class='underline dark:text-white'
141-
href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>.
142-
</div>
143-
@if ($server->settings->is_swarm_worker)
144-
<x-forms.checkbox disabled instantSave type="checkbox"
145-
id="server.settings.is_swarm_manager"
146-
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
147-
label="Is it a Swarm Manager?" />
148-
@else
149-
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_manager"
150-
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
151-
label="Is it a Swarm Manager?" />
152-
@endif
153-
154-
@if ($server->settings->is_swarm_manager)
155-
<x-forms.checkbox disabled instantSave type="checkbox"
156-
id="server.settings.is_swarm_worker"
157-
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
158-
label="Is it a Swarm Worker?" />
159-
@else
160-
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_worker"
161-
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
162-
label="Is it a Swarm Worker?" />
163-
@endif
143+
@if (!$server->settings->is_cloudflare_tunnel)
144+
<x-forms.button wire:click="manualCloudflareConfig" class="w-full">
145+
I have configured Cloudflare Tunnels manually
146+
</x-forms.button>
164147
@endif
165-
@endif
166-
@else
167-
<div class="flex items-center gap-1 pt-6">
168-
<h3 class="">Cloudflare Tunnels
169-
</h3>
170-
<x-helper class="inline-flex"
171-
helper="If you are using Cloudflare Tunnels, enable this. It will proxy all SSH requests to your server through Cloudflare.<br><span class='dark:text-warning'>Coolify does not install or set up Cloudflare (cloudflared) on your server.</span>" />
172148
</div>
173-
@if ($server->settings->is_cloudflare_tunnel)
174-
<x-forms.checkbox instantSave id="server.settings.is_cloudflare_tunnel" label="Enabled" />
175-
@else
176-
<x-modal-input buttonTitle="Configure" title="Cloudflare Tunnels">
177-
<livewire:server.configure-cloudflare-tunnels :server_id="$server->id" />
178-
</x-modal-input>
149+
@if (!$server->isBuildServer())
150+
<h3 class="pt-6">Swarm <span class="text-xs text-neutral-500">(experimental)</span></h3>
151+
<div class="pb-4">Read the docs <a class='underline dark:text-white'
152+
href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>.
153+
</div>
154+
@if ($server->settings->is_swarm_worker)
155+
<x-forms.checkbox disabled instantSave type="checkbox"
156+
id="server.settings.is_swarm_manager"
157+
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
158+
label="Is it a Swarm Manager?" />
159+
@else
160+
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_manager"
161+
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
162+
label="Is it a Swarm Manager?" />
163+
@endif
164+
165+
@if ($server->settings->is_swarm_manager)
166+
<x-forms.checkbox disabled instantSave type="checkbox"
167+
id="server.settings.is_swarm_worker"
168+
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
169+
label="Is it a Swarm Worker?" />
170+
@else
171+
<x-forms.checkbox instantSave type="checkbox" id="server.settings.is_swarm_worker"
172+
helper="For more information, please read the documentation <a class='dark:text-white' href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>."
173+
label="Is it a Swarm Worker?" />
174+
@endif
179175
@endif
180176
@endif
181177
</div>

0 commit comments

Comments
 (0)