diff --git a/.github/workflows/chore-pr-comments.yml b/.github/workflows/chore-pr-comments.yml
new file mode 100644
index 000000000..f20729346
--- /dev/null
+++ b/.github/workflows/chore-pr-comments.yml
@@ -0,0 +1,47 @@
+name: Add comment based on label
+on:
+ pull_request:
+ types:
+ - labeled
+jobs:
+ add-comment:
+ runs-on: ubuntu-latest
+ permissions:
+ pull-requests: write
+ strategy:
+ matrix:
+ include:
+ - label: "⚙️ Service"
+ body: |
+ Hi @${{ github.event.pull_request.user.login }}! 👋
+
+ It appears to us that you are either adding a new service or making changes to an existing one.
+ We kindly ask you to also review and update the **Coolify Documentation** to include this new service or it's new configuration needs.
+ This will help ensure that our documentation remains accurate and up-to-date for all users.
+
+ Coolify Docs Repository: https://github.com/coollabsio/coolify-docs
+ How to Contribute a new Service to the Docs: https://coolify.io/docs/get-started/contribute/service#adding-a-new-service-template-to-the-coolify-documentation
+ - label: "🛠️ Feature"
+ body: |
+ Hi @${{ github.event.pull_request.user.login }}! 👋
+
+ It appears to us that you are adding a new feature to Coolify.
+ We kindly ask you to also update the **Coolify Documentation** to include information about this new feature.
+ This will help ensure that our documentation remains accurate and up-to-date for all users.
+
+ Coolify Docs Repository: https://github.com/coollabsio/coolify-docs
+ How to Contribute to the Docs: https://coolify.io/docs/get-started/contribute/documentation
+ # - label: "✨ Enhancement"
+ # body: |
+ # It appears to us that you are making an enhancement to Coolify.
+ # We kindly ask you to also review and update the Coolify Documentation to include information about this enhancement if applicable.
+ # This will help ensure that our documentation remains accurate and up-to-date for all users.
+ steps:
+ - name: Add comment
+ if: github.event.label.name == matrix.label
+ run: gh pr comment "$NUMBER" --body "$BODY"
+ env:
+ GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ GH_REPO: ${{ github.repository }}
+ NUMBER: ${{ github.event.pull_request.number }}
+ BODY: ${{ matrix.body }}
diff --git a/app/Jobs/ApplicationDeploymentJob.php b/app/Jobs/ApplicationDeploymentJob.php
index bd45c09c6..c5ab62136 100644
--- a/app/Jobs/ApplicationDeploymentJob.php
+++ b/app/Jobs/ApplicationDeploymentJob.php
@@ -642,6 +642,8 @@ class ApplicationDeploymentJob implements ShouldBeEncrypted, ShouldQueue
if (! $this->application->settings->use_build_secrets && $this->build_args instanceof \Illuminate\Support\Collection && $this->build_args->isNotEmpty()) {
$build_args_string = $this->build_args->implode(' ');
+ // Escape single quotes for bash -c context used by executeInDocker
+ $build_args_string = str_replace("'", "'\\''", $build_args_string);
$command .= " {$build_args_string}";
$this->application_deployment_queue->addLogEntry('Adding build arguments to Docker Compose build command.');
}
diff --git a/app/Livewire/Project/Application/PreviewsCompose.php b/app/Livewire/Project/Application/PreviewsCompose.php
index 2632509ea..7641edcc5 100644
--- a/app/Livewire/Project/Application/PreviewsCompose.php
+++ b/app/Livewire/Project/Application/PreviewsCompose.php
@@ -72,10 +72,13 @@ class PreviewsCompose extends Component
$template = $this->preview->application->preview_url_template;
$host = $url->getHost();
$schema = $url->getScheme();
+ $portInt = $url->getPort();
+ $port = $portInt !== null ? ':' . $portInt : '';
$random = new Cuid2;
$preview_fqdn = str_replace('{{random}}', $random, $template);
$preview_fqdn = str_replace('{{domain}}', $host, $preview_fqdn);
$preview_fqdn = str_replace('{{pr_id}}', $this->preview->pull_request_id, $preview_fqdn);
+ $preview_fqdn = str_replace('{{port}}', $port, $preview_fqdn);
$preview_fqdn = "$schema://$preview_fqdn";
}
diff --git a/config/constants.php b/config/constants.php
index 224f2dfb5..f28dac5ed 100644
--- a/config/constants.php
+++ b/config/constants.php
@@ -2,7 +2,7 @@
return [
'coolify' => [
- 'version' => '4.0.0-beta.429',
+ 'version' => '4.0.0-beta.430',
'helper_version' => '1.0.11',
'realtime_version' => '1.0.10',
'self_hosted' => env('SELF_HOSTED', true),
diff --git a/other/nightly/docker-compose.prod.yml b/other/nightly/docker-compose.prod.yml
index 57f062202..b90f126a2 100644
--- a/other/nightly/docker-compose.prod.yml
+++ b/other/nightly/docker-compose.prod.yml
@@ -61,7 +61,7 @@ services:
retries: 10
timeout: 2s
soketi:
- image: '${REGISTRY_URL:-ghcr.io}/coollabsio/coolify-realtime:1.0.9'
+ image: '${REGISTRY_URL:-ghcr.io}/coollabsio/coolify-realtime:1.0.10'
ports:
- "${SOKETI_PORT:-6001}:6001"
- "6002:6002"
diff --git a/other/nightly/docker-compose.windows.yml b/other/nightly/docker-compose.windows.yml
index e19ec961f..09ce3ead3 100644
--- a/other/nightly/docker-compose.windows.yml
+++ b/other/nightly/docker-compose.windows.yml
@@ -103,7 +103,7 @@ services:
retries: 10
timeout: 2s
soketi:
- image: 'ghcr.io/coollabsio/coolify-realtime:1.0.0'
+ image: 'ghcr.io/coollabsio/coolify-realtime:1.0.10'
pull_policy: always
container_name: coolify-realtime
restart: always
diff --git a/other/nightly/versions.json b/other/nightly/versions.json
index fd5dccaf0..b391286d7 100644
--- a/other/nightly/versions.json
+++ b/other/nightly/versions.json
@@ -1,10 +1,10 @@
{
"coolify": {
"v4": {
- "version": "4.0.0-beta.428"
+ "version": "4.0.0-beta.430"
},
"nightly": {
- "version": "4.0.0-beta.429"
+ "version": "4.0.0-beta.431"
},
"helper": {
"version": "1.0.11"
diff --git a/resources/views/livewire/project/shared/environment-variable/add.blade.php b/resources/views/livewire/project/shared/environment-variable/add.blade.php
index 2978e2b35..353fe02de 100644
--- a/resources/views/livewire/project/shared/environment-variable/add.blade.php
+++ b/resources/views/livewire/project/shared/environment-variable/add.blade.php
@@ -4,15 +4,14 @@
- @if (!$shared || $isNixpacks)
+ @if (!$shared)
-