chore(swarm): mark docker swarm as deprecated

This commit is contained in:
peaklabs-dev 2026-04-17 23:28:54 +02:00
parent 340cd70ae5
commit 15cb9446ff
No known key found for this signature in database
8 changed files with 25 additions and 5 deletions

5
config/deprecations.php Normal file
View file

@ -0,0 +1,5 @@
<?php
return [
'swarm' => 'Docker Swarm is deprecated and will be removed in Coolify v5. Coolify v5 will be replacing Swarm with native Docker Compose replicas and our own scaling solution. Existing Swarm deployments will continue to work on v4 as-is. We do not recommend setting up new Swarm deployments for the time being.',
];

View file

@ -41,7 +41,7 @@
@endif @endif
@if (!$server->isBuildServer() && !$server->settings->is_cloudflare_tunnel) @if (!$server->isBuildServer() && !$server->settings->is_cloudflare_tunnel)
<a class="sub-menu-item {{ $activeMenu === 'swarm' ? 'menu-item-active' : '' }}" {{ wireNavigate() }} <a class="sub-menu-item {{ $activeMenu === 'swarm' ? 'menu-item-active' : '' }}" {{ wireNavigate() }}
href="{{ route('server.swarm', ['server_uuid' => $server->uuid]) }}"><span class="menu-item-label">Swarm (experimental)</span> href="{{ route('server.swarm', ['server_uuid' => $server->uuid]) }}"><span class="menu-item-label">Swarm</span>
</a> </a>
@endif @endif
@if (!$server->isLocalhost()) @if (!$server->isLocalhost())

View file

@ -29,7 +29,10 @@
<a class="coolbox group" {{ wireNavigate() }} <a class="coolbox group" {{ wireNavigate() }}
href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}"> href="{{ route('destination.show', ['destination_uuid' => data_get($destination, 'uuid')]) }}">
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="box-title">{{ $destination->name }}</div> <div class="box-title">
{{ $destination->name }}
<x-deprecated-badge />
</div>
<div class="box-description">server: {{ $destination->server->name }}</div> <div class="box-description">server: {{ $destination->server->name }}</div>
</div> </div>
</a> </a>

View file

@ -16,7 +16,9 @@
@if ($destination->getMorphClass() === 'App\Models\StandaloneDocker') @if ($destination->getMorphClass() === 'App\Models\StandaloneDocker')
<div class="subtitle ">A simple Docker network.</div> <div class="subtitle ">A simple Docker network.</div>
@else @else
<div class="subtitle ">A swarm Docker network. WIP</div> <div class="subtitle flex items-center gap-2">A swarm Docker network.
<x-deprecated-badge />
</div>
@endif @endif
<div class="flex gap-2"> <div class="flex gap-2">
<x-forms.input canGate="update" :canResource="$destination" id="name" label="Name" /> <x-forms.input canGate="update" :canResource="$destination" id="name" label="Name" />

View file

@ -14,7 +14,8 @@
href="{{ route('project.application.advanced', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Advanced</span></a> href="{{ route('project.application.advanced', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Advanced</span></a>
@if ($application->destination->server->isSwarm()) @if ($application->destination->server->isSwarm())
<a class="sub-menu-item" {{ wireNavigate() }} wire:current.exact="menu-item-active" <a class="sub-menu-item" {{ wireNavigate() }} wire:current.exact="menu-item-active"
href="{{ route('project.application.swarm', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Swarm Configuration</span></a> href="{{ route('project.application.swarm', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Swarm</span>
</a>
@endif @endif
<a class='sub-menu-item' {{ wireNavigate() }} wire:current.exact="menu-item-active" <a class='sub-menu-item' {{ wireNavigate() }} wire:current.exact="menu-item-active"
href="{{ route('project.application.environment-variables', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Environment Variables</span></a> href="{{ route('project.application.environment-variables', ['project_uuid' => $project->uuid, 'environment_uuid' => $environment->uuid, 'application_uuid' => $application->uuid]) }}"><span class="menu-item-label">Environment Variables</span></a>

View file

@ -2,6 +2,7 @@
<form wire:submit='submit' class="flex flex-col"> <form wire:submit='submit' class="flex flex-col">
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h2>Swarm Configuration</h2> <h2>Swarm Configuration</h2>
<x-deprecated-badge />
@can('update', $application) @can('update', $application)
<x-forms.button type="submit"> <x-forms.button type="submit">
Save Save
@ -13,6 +14,9 @@
</x-forms.button> </x-forms.button>
@endcan @endcan
</div> </div>
<x-callout type="warning" title="Deprecated" class="my-4">
{{ config('deprecations.swarm') }}
</x-callout>
<div class="flex flex-col gap-2 py-4"> <div class="flex flex-col gap-2 py-4">
<div class="flex flex-col items-end gap-2 xl:flex-row"> <div class="flex flex-col items-end gap-2 xl:flex-row">
<x-forms.input id="swarmReplicas" label="Replicas" required canGate="update" :canResource="$application" /> <x-forms.input id="swarmReplicas" label="Replicas" required canGate="update" :canResource="$application" />

View file

@ -452,6 +452,7 @@ function searchResources() {
<div class="flex flex-col mx-6"> <div class="flex flex-col mx-6">
<div class="font-bold dark:group-hover:text-white"> <div class="font-bold dark:group-hover:text-white">
Swarm Docker <span class="text-xs">({{ $swarmDocker->name }})</span> Swarm Docker <span class="text-xs">({{ $swarmDocker->name }})</span>
<x-deprecated-badge />
</div> </div>
</div> </div>
</div> </div>

View file

@ -8,8 +8,12 @@
<div class="w-full"> <div class="w-full">
<div> <div>
<div class="flex items-center gap-2"> <div class="flex items-center gap-2">
<h2>Swarm <span class="text-xs text-neutral-500">(experimental)</span></h2> <h2>Swarm</h2>
<x-deprecated-badge />
</div> </div>
<x-callout type="warning" title="Deprecated" class="my-4">
{{ config('deprecations.swarm') }}
</x-callout>
<div class="pb-4">Read the docs <a class='underline dark:text-white' <div class="pb-4">Read the docs <a class='underline dark:text-white'
href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>. href='https://coolify.io/docs/knowledge-base/docker/swarm' target='_blank'>here</a>.
</div> </div>