mirror of
https://github.com/ershisan99/coolify.git
synced 2026-01-01 20:59:24 +00:00
Compare commits
17 Commits
v4.0.0-bet
...
v4.0.0-bet
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
144b34ca2e | ||
|
|
676c022e41 | ||
|
|
7c0b98bb70 | ||
|
|
7779713392 | ||
|
|
5e1396025c | ||
|
|
d09c88f71c | ||
|
|
7980f21b1b | ||
|
|
3843994a05 | ||
|
|
a1b08ca037 | ||
|
|
144cdd11ec | ||
|
|
b6531cdb10 | ||
|
|
0eef4a5fa1 | ||
|
|
42baaf8f2d | ||
|
|
08d9dff8eb | ||
|
|
01b3aab9bc | ||
|
|
fde34ef178 | ||
|
|
5195abec94 |
@@ -24,6 +24,7 @@ use Illuminate\Foundation\Bus\Dispatchable;
|
|||||||
use Illuminate\Queue\InteractsWithQueue;
|
use Illuminate\Queue\InteractsWithQueue;
|
||||||
use Illuminate\Queue\SerializesModels;
|
use Illuminate\Queue\SerializesModels;
|
||||||
use Illuminate\Support\Collection;
|
use Illuminate\Support\Collection;
|
||||||
|
use Illuminate\Support\Facades\Log;
|
||||||
use Illuminate\Support\Sleep;
|
use Illuminate\Support\Sleep;
|
||||||
use Illuminate\Support\Str;
|
use Illuminate\Support\Str;
|
||||||
use RuntimeException;
|
use RuntimeException;
|
||||||
@@ -740,8 +741,12 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
$envs->push("SOURCE_COMMIT=unknown");
|
$envs->push("SOURCE_COMMIT=unknown");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$envs = $envs->sort(function ($a, $b) {
|
||||||
|
return strpos($a, '$') === false ? -1 : 1;
|
||||||
|
});
|
||||||
|
Log::info("message", $envs->implode("\n"));
|
||||||
} else {
|
} else {
|
||||||
$this->env_filename = ".env-coolify";
|
$this->env_filename = ".env";
|
||||||
foreach ($this->application->environment_variables as $env) {
|
foreach ($this->application->environment_variables as $env) {
|
||||||
$real_value = $env->real_value;
|
$real_value = $env->real_value;
|
||||||
if ($env->version === '4.0.0-beta.239') {
|
if ($env->version === '4.0.0-beta.239') {
|
||||||
@@ -775,6 +780,10 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
}
|
}
|
||||||
|
|
||||||
if ($envs->isEmpty()) {
|
if ($envs->isEmpty()) {
|
||||||
|
$this->env_filename = null;
|
||||||
|
if ($this->use_build_server) {
|
||||||
|
$this->server = $this->original_server;
|
||||||
|
}
|
||||||
$this->execute_remote_command(
|
$this->execute_remote_command(
|
||||||
[
|
[
|
||||||
"command" => "rm -f $this->configuration_dir/{$this->env_filename}",
|
"command" => "rm -f $this->configuration_dir/{$this->env_filename}",
|
||||||
@@ -782,39 +791,51 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
"ignore_errors" => true
|
"ignore_errors" => true
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
$this->env_filename = null;
|
if ($this->use_build_server) {
|
||||||
return;
|
$this->server = $this->build_server;
|
||||||
}
|
}
|
||||||
$this->execute_remote_command([
|
|
||||||
executeInDocker($this->deployment_uuid, "cat $this->workdir/.env 2>/dev/null || true"),
|
|
||||||
"hidden" => true,
|
|
||||||
"save" => "dotenv"
|
|
||||||
]);
|
|
||||||
if (str($this->saved_outputs->get('dotenv'))->isNotEmpty()) {
|
|
||||||
$base64_dotenv = base64_encode($this->saved_outputs->get('dotenv')->value());
|
|
||||||
$this->execute_remote_command(
|
|
||||||
[
|
|
||||||
"echo '{$base64_dotenv}' | base64 -d | tee $this->configuration_dir/.env > /dev/null"
|
|
||||||
]
|
|
||||||
);
|
|
||||||
} else {
|
} else {
|
||||||
|
$envs_base64 = base64_encode($envs->implode("\n"));
|
||||||
$this->execute_remote_command(
|
$this->execute_remote_command(
|
||||||
[
|
[
|
||||||
"command" => "rm -f $this->configuration_dir/.env",
|
executeInDocker($this->deployment_uuid, "echo '$envs_base64' | base64 -d | tee $this->workdir/{$this->env_filename} > /dev/null")
|
||||||
"hidden" => true,
|
],
|
||||||
"ignore_errors" => true
|
|
||||||
|
);
|
||||||
|
if ($this->use_build_server) {
|
||||||
|
$this->server = $this->original_server;
|
||||||
|
}
|
||||||
|
$this->execute_remote_command(
|
||||||
|
[
|
||||||
|
"echo '$envs_base64' | base64 -d | tee $this->configuration_dir/{$this->env_filename} > /dev/null"
|
||||||
]
|
]
|
||||||
);
|
);
|
||||||
|
if ($this->use_build_server) {
|
||||||
|
$this->server = $this->build_server;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$envs_base64 = base64_encode($envs->implode("\n"));
|
// $this->execute_remote_command([
|
||||||
$this->execute_remote_command(
|
// executeInDocker($this->deployment_uuid, "cat $this->workdir/.env 2>/dev/null || true"),
|
||||||
[
|
// "hidden" => true,
|
||||||
executeInDocker($this->deployment_uuid, "echo '$envs_base64' | base64 -d | tee $this->workdir/{$this->env_filename} > /dev/null")
|
// "save" => "dotenv"
|
||||||
],
|
// ]);
|
||||||
[
|
// if (str($this->saved_outputs->get('dotenv'))->isNotEmpty()) {
|
||||||
"echo '$envs_base64' | base64 -d | tee $this->configuration_dir/{$this->env_filename} > /dev/null"
|
// $base64_dotenv = base64_encode($this->saved_outputs->get('dotenv')->value());
|
||||||
]
|
// $this->execute_remote_command(
|
||||||
);
|
// [
|
||||||
|
// "echo '{$base64_dotenv}' | base64 -d | tee $this->configuration_dir/.env > /dev/null"
|
||||||
|
// ]
|
||||||
|
// );
|
||||||
|
// } else {
|
||||||
|
// $this->execute_remote_command(
|
||||||
|
// [
|
||||||
|
// "command" => "rm -f $this->configuration_dir/.env",
|
||||||
|
// "hidden" => true,
|
||||||
|
// "ignore_errors" => true
|
||||||
|
// ]
|
||||||
|
// );
|
||||||
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1239,8 +1260,10 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
if ($this->pull_request_id !== 0) {
|
if ($this->pull_request_id !== 0) {
|
||||||
$labels = collect(generateLabelsApplication($this->application, $this->preview));
|
$labels = collect(generateLabelsApplication($this->application, $this->preview));
|
||||||
}
|
}
|
||||||
|
$labels = $labels->map(function ($value, $key) {
|
||||||
|
return escapeDollarSign($value);
|
||||||
|
});
|
||||||
$labels = $labels->merge(defaultLabels($this->application->id, $this->application->uuid, $this->pull_request_id))->toArray();
|
$labels = $labels->merge(defaultLabels($this->application->id, $this->application->uuid, $this->pull_request_id))->toArray();
|
||||||
|
|
||||||
// Check for custom HEALTHCHECK
|
// Check for custom HEALTHCHECK
|
||||||
$this->custom_healthcheck_found = false;
|
$this->custom_healthcheck_found = false;
|
||||||
if ($this->application->build_pack === 'dockerfile' || $this->application->dockerfile) {
|
if ($this->application->build_pack === 'dockerfile' || $this->application->dockerfile) {
|
||||||
@@ -1279,21 +1302,23 @@ class ApplicationDeploymentJob implements ShouldQueue, ShouldBeEncrypted
|
|||||||
]
|
]
|
||||||
]
|
]
|
||||||
];
|
];
|
||||||
if (str($this->saved_outputs->get('dotenv'))->isNotEmpty()) {
|
// if (str($this->saved_outputs->get('dotenv'))->isNotEmpty()) {
|
||||||
if (data_get($docker_compose, "services.{$this->container_name}.env_file")) {
|
// if (data_get($docker_compose, "services.{$this->container_name}.env_file")) {
|
||||||
$docker_compose['services'][$this->container_name]['env_file'][] = '.env';
|
// $docker_compose['services'][$this->container_name]['env_file'][] = '.env';
|
||||||
} else {
|
// } else {
|
||||||
$docker_compose['services'][$this->container_name]['env_file'] = ['.env'];
|
// $docker_compose['services'][$this->container_name]['env_file'] = ['.env'];
|
||||||
}
|
// }
|
||||||
|
// }
|
||||||
|
// if ($this->env_filename) {
|
||||||
|
// if (data_get($docker_compose, "services.{$this->container_name}.env_file")) {
|
||||||
|
// $docker_compose['services'][$this->container_name]['env_file'][] = $this->env_filename;
|
||||||
|
// } else {
|
||||||
|
// $docker_compose['services'][$this->container_name]['env_file'] = [$this->env_filename];
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
if (!is_null($this->env_filename)) {
|
||||||
|
$docker_compose['services'][$this->container_name]['env_file'] = [$this->env_filename];
|
||||||
}
|
}
|
||||||
if ($this->env_filename) {
|
|
||||||
if (data_get($docker_compose, "services.{$this->container_name}.env_file")) {
|
|
||||||
$docker_compose['services'][$this->container_name]['env_file'][] = $this->env_filename;
|
|
||||||
} else {
|
|
||||||
$docker_compose['services'][$this->container_name]['env_file'] = [$this->env_filename];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!$this->custom_healthcheck_found) {
|
if (!$this->custom_healthcheck_found) {
|
||||||
$docker_compose['services'][$this->container_name]['healthcheck'] = [
|
$docker_compose['services'][$this->container_name]['healthcheck'] = [
|
||||||
'test' => [
|
'test' => [
|
||||||
|
|||||||
@@ -69,13 +69,14 @@ class Configuration extends Component
|
|||||||
}
|
}
|
||||||
$this->validate();
|
$this->validate();
|
||||||
|
|
||||||
if ($this->settings->is_dns_validation_enabled) {
|
if ($this->settings->is_dns_validation_enabled && $this->settings->fqdn) {
|
||||||
|
ray('asdf');
|
||||||
if (!validate_dns_entry($this->settings->fqdn, $this->server)) {
|
if (!validate_dns_entry($this->settings->fqdn, $this->server)) {
|
||||||
$this->dispatch('error', "Validating DNS ({$this->settings->fqdn}) failed.<br><br>Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='underline dark:text-white' href='https://coolify.io/docs/knowledge-base/dns-configuration'>documentation</a> for further help.");
|
$this->dispatch('error', "Validating DNS ({$this->settings->fqdn}) failed.<br><br>Make sure you have added the DNS records correctly.<br><br>Check this <a target='_blank' class='underline dark:text-white' href='https://coolify.io/docs/knowledge-base/dns-configuration'>documentation</a> for further help.");
|
||||||
$error_show = true;
|
$error_show = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
check_domain_usage(domain: $this->settings->fqdn);
|
if ($this->settings->fqdn) check_domain_usage(domain: $this->settings->fqdn);
|
||||||
$this->settings->custom_dns_servers = str($this->settings->custom_dns_servers)->replaceEnd(',', '')->trim();
|
$this->settings->custom_dns_servers = str($this->settings->custom_dns_servers)->replaceEnd(',', '')->trim();
|
||||||
$this->settings->custom_dns_servers = str($this->settings->custom_dns_servers)->trim()->explode(',')->map(function ($dns) {
|
$this->settings->custom_dns_servers = str($this->settings->custom_dns_servers)->trim()->explode(',')->map(function ($dns) {
|
||||||
return str($dns)->trim()->lower();
|
return str($dns)->trim()->lower();
|
||||||
|
|||||||
@@ -860,6 +860,9 @@ $schema://$host {
|
|||||||
}
|
}
|
||||||
public function isNonRoot()
|
public function isNonRoot()
|
||||||
{
|
{
|
||||||
|
if ($this->user instanceof Stringable) {
|
||||||
|
return $this->user->value() !== 'root';
|
||||||
|
}
|
||||||
return $this->user !== 'root';
|
return $this->user !== 'root';
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ return [
|
|||||||
|
|
||||||
// The release version of your application
|
// The release version of your application
|
||||||
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
// Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD'))
|
||||||
'release' => '4.0.0-beta.261',
|
'release' => '4.0.0-beta.265',
|
||||||
// When left empty or `null` the Laravel environment will be used
|
// When left empty or `null` the Laravel environment will be used
|
||||||
'environment' => config('app.env'),
|
'environment' => config('app.env'),
|
||||||
|
|
||||||
|
|||||||
@@ -1,3 +1,3 @@
|
|||||||
<?php
|
<?php
|
||||||
|
|
||||||
return '4.0.0-beta.261';
|
return '4.0.0-beta.265';
|
||||||
|
|||||||
@@ -87,7 +87,7 @@
|
|||||||
@foreach (decode_remote_command_output($application_deployment_queue) as $line)
|
@foreach (decode_remote_command_output($application_deployment_queue) as $line)
|
||||||
<span @class([
|
<span @class([
|
||||||
'dark:text-warning whitespace-pre-line' => $line['hidden'],
|
'dark:text-warning whitespace-pre-line' => $line['hidden'],
|
||||||
'text-red-500 font-bold' => $line['type'] == 'stderr',
|
'text-red-500 font-bold whitespace-pre-line' => $line['type'] == 'stderr',
|
||||||
])>[{{ $line['timestamp'] }}] @if ($line['hidden'])
|
])>[{{ $line['timestamp'] }}] @if ($line['hidden'])
|
||||||
<br><br>[COMMAND] {{ $line['command'] }}<br>[OUTPUT]
|
<br><br>[COMMAND] {{ $line['command'] }}<br>[OUTPUT]
|
||||||
@endif @if (str($line['output'])->contains('http://') || str($line['output'])->contains('https://'))
|
@endif @if (str($line['output'])->contains('http://') || str($line['output'])->contains('https://'))
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# documentation: https://appsmith.com
|
# documentation: https://appsmith.com
|
||||||
# slogan: Appsmith is low-code application platform for building internal tools.
|
# slogan: A low-code application platform for building internal tools.
|
||||||
# tags: lowcode,nocode,no,low,platform
|
# tags: lowcode,nocode,no,low,platform
|
||||||
# logo: svgs/appsmith.svg
|
# logo: svgs/appsmith.svg
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# documentation: https://appwrite.io
|
# documentation: https://appwrite.io
|
||||||
# slogan: Appwrite is backend-as-a-service platform that simplifies the web & mobile app development.
|
# slogan: A backend-as-a-service platform that simplifies the web & mobile app development.
|
||||||
# env_file: appwrite.env
|
# env_file: appwrite.env
|
||||||
# tags: backend-as-a-service, platform
|
# tags: backend-as-a-service, platform
|
||||||
# logo: svgs/appwrite.svg
|
# logo: svgs/appwrite.svg
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# documentation: https://docs.baby-buddy.net
|
# documentation: https://docs.baby-buddy.net
|
||||||
# slogan: Baby Buddy helps parents track their baby's daily activities, growth, and health with ease.
|
# slogan: It helps parents track their baby's daily activities, growth, and health with ease.
|
||||||
# tags: baby, parents, health, growth, activities
|
# tags: baby, parents, health, growth, activities
|
||||||
# logo: svgs/babybuddy.png
|
# logo: svgs/babybuddy.png
|
||||||
|
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
# documentation: https://github.com/linuxserver/budge
|
# documentation: https://github.com/linuxserver/budge
|
||||||
# slogan: Budge is a budgeting personal finance app.
|
# slogan: A budgeting personal finance app.
|
||||||
# tags: personal finance, budgeting, expense tracking
|
# tags: personal finance, budgeting, expense tracking
|
||||||
|
|
||||||
services:
|
services:
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"coolify": {
|
"coolify": {
|
||||||
"v4": {
|
"v4": {
|
||||||
"version": "4.0.0-beta.261"
|
"version": "4.0.0-beta.265"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user