From 50b589aeff3820d000b741335e46e437c985efb7 Mon Sep 17 00:00:00 2001 From: Andras Bacsai <5845193+andrasbacsai@users.noreply.github.com> Date: Fri, 26 Dec 2025 12:02:24 +0100 Subject: [PATCH 001/102] fix(ui): Initialize latestVersion in Upgrade component mount MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The upgrade modal was displaying "0.0.0" as the target version because $latestVersion was not initialized during component mount. The Blade template rendered before Alpine's x-init could populate the value. Fixed by calling get_latest_version_of_coolify() in mount() to ensure the version is available at initial render time. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Haiku 4.5 --- app/Livewire/Upgrade.php | 1 + 1 file changed, 1 insertion(+) diff --git a/app/Livewire/Upgrade.php b/app/Livewire/Upgrade.php index 7948ad6a9..25cedc71b 100644 --- a/app/Livewire/Upgrade.php +++ b/app/Livewire/Upgrade.php @@ -24,6 +24,7 @@ class Upgrade extends Component public function mount() { $this->currentVersion = config('constants.coolify.version'); + $this->latestVersion = get_latest_version_of_coolify(); $this->devMode = isDev(); } From 93a95bdf4391abd1e44dbb3093ab5ea9a5f3f169 Mon Sep 17 00:00:00 2001 From: James Peters Date: Sat, 14 Feb 2026 00:03:12 +0000 Subject: [PATCH 002/102] Added extra documentation on format for port + path when configuring domain rewrites --- .../views/livewire/project/application/general.blade.php | 4 ++-- .../views/livewire/project/service/edit-domain.blade.php | 2 +- resources/views/livewire/project/service/index.blade.php | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/resources/views/livewire/project/application/general.blade.php b/resources/views/livewire/project/application/general.blade.php index f576a4a12..be59fa884 100644 --- a/resources/views/livewire/project/application/general.blade.php +++ b/resources/views/livewire/project/application/general.blade.php @@ -54,7 +54,7 @@ @if (!isDatabaseImage(data_get($service, 'image')))
@@ -106,7 +106,7 @@ x-bind:disabled="!canUpdate" /> @else @can('update', $application) Generate Domain diff --git a/resources/views/livewire/project/service/edit-domain.blade.php b/resources/views/livewire/project/service/edit-domain.blade.php index 0691146f6..7ca7a9685 100644 --- a/resources/views/livewire/project/service/edit-domain.blade.php +++ b/resources/views/livewire/project/service/edit-domain.blade.php @@ -10,7 +10,7 @@ + helper="You can specify one domain with path or more with comma. You can specify a port to bind the domain to.

Example
- http://app.coolify.io,https://cloud.coolify.io/dashboard
- http://app.coolify.io/api/v3
- http://app.coolify.io:3000 -> app.coolify.io will point to port 3000 inside the container.
- http://app.coolify.io:8080/api -> app.coolify.io/api will point to port 8080 inside the container.">
Save diff --git a/resources/views/livewire/project/service/index.blade.php b/resources/views/livewire/project/service/index.blade.php index 04d30ae60..6d9cd3ee2 100644 --- a/resources/views/livewire/project/service/index.blade.php +++ b/resources/views/livewire/project/service/index.blade.php @@ -66,11 +66,11 @@ class="{{ request()->routeIs('project.service.configuration') ? 'menu-item-activ @if ($serviceApplication->required_fqdn) + helper="You can specify one domain with path or more with comma. You can specify a port to bind the domain to.

Example
- http://app.coolify.io,https://cloud.coolify.io/dashboard
- http://app.coolify.io/api/v3
- http://app.coolify.io:3000 -> app.coolify.io will point to port 3000 inside the container.
- http://app.coolify.io:8080/api -> app.coolify.io/api will point to port 8080 inside the container."> @else + helper="You can specify one domain with path or more with comma. You can specify a port to bind the domain to.

Example
- http://app.coolify.io,https://cloud.coolify.io/dashboard
- http://app.coolify.io/api/v3
- http://app.coolify.io:3000 -> app.coolify.io will point to port 3000 inside the container.
- http://app.coolify.io:8080/api -> app.coolify.io/api will point to port 8080 inside the container."> @endif @endif Date: Mon, 16 Feb 2026 08:47:00 +0100 Subject: [PATCH 003/102] feat(services): add architecture warning --- app/Console/Commands/Generate/Services.php | 24 ++++++++++++++++ app/Livewire/GlobalSearch.php | 5 +++- .../views/livewire/global-search.blade.php | 14 ++++++++++ .../livewire/project/new/select.blade.php | 28 +++++++++++++++++++ 4 files changed, 70 insertions(+), 1 deletion(-) diff --git a/app/Console/Commands/Generate/Services.php b/app/Console/Commands/Generate/Services.php index 42f9360bb..e316fc391 100644 --- a/app/Console/Commands/Generate/Services.php +++ b/app/Console/Commands/Generate/Services.php @@ -88,6 +88,14 @@ private function processFile(string $file): false|array $payload['envs'] = base64_encode($envFileContent); } + if (str($data->get('amd_only'))->toBoolean()) { + $payload['amd_only'] = true; + } + + if (str($data->get('arm_only'))->toBoolean()) { + $payload['arm_only'] = true; + } + return $payload; } @@ -160,6 +168,14 @@ private function processFileWithFqdn(string $file): false|array $payload['envs'] = base64_encode($modifiedEnvContent); } + if (str($data->get('amd_only'))->toBoolean()) { + $payload['amd_only'] = true; + } + + if (str($data->get('arm_only'))->toBoolean()) { + $payload['arm_only'] = true; + } + return $payload; } @@ -229,6 +245,14 @@ private function processFileWithFqdnRaw(string $file): false|array $payload['envs'] = $modifiedEnvContent; } + if (str($data->get('amd_only'))->toBoolean()) { + $payload['amd_only'] = true; + } + + if (str($data->get('arm_only'))->toBoolean()) { + $payload['arm_only'] = true; + } + return $payload; } } diff --git a/app/Livewire/GlobalSearch.php b/app/Livewire/GlobalSearch.php index ed9115093..56804d823 100644 --- a/app/Livewire/GlobalSearch.php +++ b/app/Livewire/GlobalSearch.php @@ -1495,7 +1495,10 @@ public function getServicesProperty() 'type' => 'one-click-service-'.$serviceKey, 'category' => 'Services', 'resourceType' => 'service', - ]); + ] + array_filter([ + 'amd_only' => data_get($service, 'amd_only') ? true : null, + 'arm_only' => data_get($service, 'arm_only') ? true : null, + ])); } $cachedServices = $items->toArray(); diff --git a/resources/views/livewire/global-search.blade.php b/resources/views/livewire/global-search.blade.php index 27b8d2821..8a5b19e92 100644 --- a/resources/views/livewire/global-search.blade.php +++ b/resources/views/livewire/global-search.blade.php @@ -822,6 +822,20 @@ class="h-5 w-5 text-warning-600 dark:text-warning-400"
+ + +
+ + AMD only + +
+
+ This service only supports AMD64/x86_64 architecture. It will not work + on ARM-based servers (e.g., Apple Silicon, Raspberry Pi, AWS Graviton). +
+
+
+ +