-
-
-
-
Remove Required Port?
-
-
-
-
- This service requires port {{ $requiredPort }} to function correctly.
- One or more of your domains are missing a port number.
-
+
+
+
+ - Only one service will be accessible at this domain
+ - The routing behavior will be unpredictable
+ - You may experience service disruptions
+ - SSL certificates might not work correctly
+
+
+
-
-
- - The service may become unreachable
- - The proxy may not be able to route traffic correctly
- - Environment variables may not be generated properly
- - The service may fail to start or function
-
-
+ @if ($showPortWarningModal)
+
+
+
+
+
+
+
Remove Required Port?
+
+
+
+
+ This service requires port {{ $requiredPort }} to function correctly.
+ One or more of your domains are missing a port number.
+
-
-
- Cancel - Keep Port
-
-
- I understand, remove port anyway
-
+
+
+ - The service may become unreachable
+ - The proxy may not be able to route traffic correctly
+ - Environment variables may not be generated properly
+ - The service may fail to start or function
+
+
+
+
+
+ Cancel - Keep Port
+
+
+ I understand, remove port anyway
+
+
-
-
-
+
+
+ @endif
@endif
@elseif ($resourceType === 'database')
@@ -178,6 +184,17 @@ class="w-auto dark:bg-coolgray-200 dark:hover:bg-coolgray-300">
@if ($currentRoute === 'project.service.database.import')
+ @elseif ($currentRoute === 'project.service.index.advanced')
+ Advanced
+
+
+
+
@else
-
Advanced
-
-
-
-
@endif
@endif
diff --git a/routes/web.php b/routes/web.php
index 26863aa17..7ccfb709a 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -262,6 +262,7 @@
Route::get('/terminal', ExecuteContainerCommand::class)->name('project.service.command')->middleware('can.access.terminal');
Route::get('/{stack_service_uuid}/backups', ServiceDatabaseBackups::class)->name('project.service.database.backups');
Route::get('/{stack_service_uuid}/import', ServiceIndex::class)->name('project.service.database.import')->middleware('can.update.resource');
+ Route::get('/{stack_service_uuid}/advanced', ServiceIndex::class)->name('project.service.index.advanced');
Route::get('/{stack_service_uuid}', ServiceIndex::class)->name('project.service.index');
Route::get('/tasks/{task_uuid}', ScheduledTaskShow::class)->name('project.service.scheduled-tasks');
});
From 49ffbb9429bb7f0d2788f8f11a4834b4fb56fc1d Mon Sep 17 00:00:00 2001
From: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com>
Date: Wed, 18 Mar 2026 12:09:52 +0530
Subject: [PATCH 3/4] fix(ui): changed required port callout from warning to
info
it's basically an info for the end user about the port requirement, in the past we had some users confused by it like their domain works fine even without port number while the service port is 80
---
resources/views/livewire/project/service/edit-domain.blade.php | 2 +-
resources/views/livewire/project/service/index.blade.php | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/resources/views/livewire/project/service/edit-domain.blade.php b/resources/views/livewire/project/service/edit-domain.blade.php
index 0691146f6..c04718df7 100644
--- a/resources/views/livewire/project/service/edit-domain.blade.php
+++ b/resources/views/livewire/project/service/edit-domain.blade.php
@@ -1,7 +1,7 @@
@if ($requiredPort && !$serviceApplication->serviceType()?->contains(str($serviceApplication->image)->before(':')))
-
+
This service requires port {{ $requiredPort }} to function correctly. All domains must include this port number (or any other port if you know what you're doing).
Example: http://app.coolify.io:{{ $requiredPort }}
From 820f699853cfc93306156d120c22d23cddd104c5 Mon Sep 17 00:00:00 2001
From: ShadowArcanist <162910371+ShadowArcanist@users.noreply.github.com>
Date: Wed, 18 Mar 2026 12:53:24 +0530
Subject: [PATCH 4/4] fix(ui): updated example domains on helper text to be
https instead of http
we were setting a bad example by showing http because user will enter their domain in http and wonder why they cannot access their site over https, also user don't know how to use multiple domains with port numbers so covered it on this change as well
---
app/Http/Controllers/Api/ApplicationsController.php | 8 ++++----
app/Http/Controllers/Api/ServicesController.php | 4 ++--
.../views/livewire/project/application/general.blade.php | 4 ++--
.../views/livewire/project/service/edit-domain.blade.php | 4 ++--
resources/views/livewire/project/service/index.blade.php | 6 +++---
5 files changed, 13 insertions(+), 13 deletions(-)
diff --git a/app/Http/Controllers/Api/ApplicationsController.php b/app/Http/Controllers/Api/ApplicationsController.php
index 6188651a1..e3e06dd26 100644
--- a/app/Http/Controllers/Api/ApplicationsController.php
+++ b/app/Http/Controllers/Api/ApplicationsController.php
@@ -214,7 +214,7 @@ public function applications(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")'],
+ 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")'],
],
),
],
@@ -379,7 +379,7 @@ public function create_public_application(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")'],
+ 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")'],
],
),
],
@@ -544,7 +544,7 @@ public function create_private_gh_app_application(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")'],
+ 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")'],
],
),
],
@@ -2378,7 +2378,7 @@ public function delete_by_uuid(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io")'],
+ 'domain' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io")'],
],
),
],
diff --git a/app/Http/Controllers/Api/ServicesController.php b/app/Http/Controllers/Api/ServicesController.php
index 32097443e..107eea9a6 100644
--- a/app/Http/Controllers/Api/ServicesController.php
+++ b/app/Http/Controllers/Api/ServicesController.php
@@ -217,7 +217,7 @@ public function services(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'url' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io").'],
+ 'url' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io").'],
],
),
],
@@ -839,7 +839,7 @@ public function delete_by_uuid(Request $request)
type: 'object',
properties: [
'name' => ['type' => 'string', 'description' => 'The service name as defined in docker-compose.'],
- 'url' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "http://app.coolify.io,https://app2.coolify.io").'],
+ 'url' => ['type' => 'string', 'description' => 'Comma-separated list of URLs (e.g. "https://app.coolify.io,https://app2.coolify.io").'],
],
),
],
diff --git a/resources/views/livewire/project/application/general.blade.php b/resources/views/livewire/project/application/general.blade.php
index aada339cc..22a1d29b2 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 c04718df7..375dc9728 100644
--- a/resources/views/livewire/project/service/edit-domain.blade.php
+++ b/resources/views/livewire/project/service/edit-domain.blade.php
@@ -4,13 +4,13 @@
This service requires port {{ $requiredPort }} to function correctly. All domains must include this port number (or any other port if you know what you're doing).
- Example: http://app.coolify.io:{{ $requiredPort }}
+ Example: https://app.coolify.io:{{ $requiredPort }},https://www.app.coolify.io:{{ $requiredPort }}
@endif
+ helper="You can specify one domain with path or more with comma. You can specify a port to bind the domain to.
Example
- https://app.coolify.io,https://cloud.coolify.io/dashboard
- https://app.coolify.io/api/v3
- https://app.coolify.io:3000 -> app.coolify.io will point to port 3000 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 a7e06bdad..7cb61935f 100644
--- a/resources/views/livewire/project/service/index.blade.php
+++ b/resources/views/livewire/project/service/index.blade.php
@@ -77,7 +77,7 @@ class="{{ request()->routeIs('project.service.configuration') ? 'menu-item-activ
This service requires port {{ $requiredPort }} to function correctly. All domains must include this port number (or any other port if you know what you're doing).
- Example: http://app.coolify.io:{{ $requiredPort }}
+ Example: https://app.coolify.io:{{ $requiredPort }},https://www.app.coolify.io:{{ $requiredPort }}
@endif
@@ -92,11 +92,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
- https://app.coolify.io,https://cloud.coolify.io/dashboard
- https://app.coolify.io/api/v3
- https://app.coolify.io:3000 -> app.coolify.io will point to port 3000 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
- https://app.coolify.io,https://cloud.coolify.io/dashboard
- https://app.coolify.io/api/v3
- https://app.coolify.io:3000 -> app.coolify.io will point to port 3000 inside the container. ">
@endif
@endif