From f9aa029e8eb20a5c2279b47068d7a949c698a160 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marek=20=C5=A0tefanko?= Date: Sat, 20 Apr 2024 00:10:50 +0200 Subject: [PATCH 01/25] Added " " to encapsulate branch name when cloning --- app/Models/Application.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/Models/Application.php b/app/Models/Application.php index 66e18565b..971f1e894 100644 --- a/app/Models/Application.php +++ b/app/Models/Application.php @@ -579,9 +579,9 @@ class Application extends BaseModel ['repository' => $customRepository, 'port' => $customPort] = $this->customRepository(); $baseDir = $custom_base_dir ?? $this->generateBaseDir($deployment_uuid); $commands = collect([]); - $git_clone_command = "git clone -b {$this->git_branch}"; + $git_clone_command = "git clone -b \"{$this->git_branch}\""; if ($only_checkout) { - $git_clone_command = "git clone --no-checkout -b {$this->git_branch}"; + $git_clone_command = "git clone --no-checkout -b \"{$this->git_branch}\""; } if ($pull_request_id !== 0) { $pr_branch_name = "pr-{$pull_request_id}-coolify"; From 66bdb39f1ad37a48aa4f5f7c83c10b06c1bdf0a4 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Wed, 24 Apr 2024 18:03:20 +0200 Subject: [PATCH 02/25] Update version numbers to 4.0.0-beta.267 --- config/sentry.php | 2 +- config/version.php | 2 +- versions.json | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/sentry.php b/config/sentry.php index 7ae7ccfda..416daa809 100644 --- a/config/sentry.php +++ b/config/sentry.php @@ -7,7 +7,7 @@ return [ // The release version of your application // Example with dynamic git hash: trim(exec('git --git-dir ' . base_path('.git') . ' log --pretty="%h" -n1 HEAD')) - 'release' => '4.0.0-beta.266', + 'release' => '4.0.0-beta.267', // When left empty or `null` the Laravel environment will be used 'environment' => config('app.env'), diff --git a/config/version.php b/config/version.php index 7001afde8..66b6ee419 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@ Date: Thu, 25 Apr 2024 11:49:34 +0200 Subject: [PATCH 03/25] fix: caddy network issue feat: connect compose based apps to predefined network --- app/Livewire/Project/Application/Advanced.php | 8 +++++ app/Livewire/Project/Application/General.php | 10 ++----- bootstrap/helpers/shared.php | 13 +++++++-- ...docker_network_to_application_settings.php | 29 +++++++++++++++++++ .../project/application/advanced.blade.php | 15 +++++++++- .../project/application/general.blade.php | 9 ++---- 6 files changed, 65 insertions(+), 19 deletions(-) create mode 100644 database/migrations/2024_04_25_073615_add_docker_network_to_application_settings.php diff --git a/app/Livewire/Project/Application/Advanced.php b/app/Livewire/Project/Application/Advanced.php index 278cab5a1..d35867e8f 100644 --- a/app/Livewire/Project/Application/Advanced.php +++ b/app/Livewire/Project/Application/Advanced.php @@ -27,6 +27,8 @@ class Advanced extends Component 'application.settings.gpu_count' => 'string|required', 'application.settings.gpu_device_ids' => 'string|required', 'application.settings.gpu_options' => 'string|required', + 'application.settings.is_raw_compose_deployment_enabled' => 'boolean|required', + 'application.settings.connect_to_docker_network' => 'boolean|required', ]; public function mount() { $this->is_force_https_enabled = $this->application->isForceHttpsEnabled(); @@ -54,8 +56,14 @@ class Advanced extends Component $this->application->settings->is_stripprefix_enabled = $this->is_stripprefix_enabled; $this->dispatch('resetDefaultLabels', false); } + if ($this->application->settings->is_raw_compose_deployment_enabled) { + $this->application->parseRawCompose(); + } else { + $this->application->parseCompose(); + } $this->application->settings->save(); $this->dispatch('success', 'Settings saved.'); + $this->dispatch('configurationChanged'); } public function submit() { if ($this->application->settings->gpu_count && $this->application->settings->gpu_device_ids) { diff --git a/app/Livewire/Project/Application/General.php b/app/Livewire/Project/Application/General.php index 022a7b710..6926e52cb 100644 --- a/app/Livewire/Project/Application/General.php +++ b/app/Livewire/Project/Application/General.php @@ -34,7 +34,8 @@ class General extends Component public $parsedServiceDomains = []; protected $listeners = [ - 'resetDefaultLabels' + 'resetDefaultLabels', + 'configurationChanged' => '$refresh' ]; protected $rules = [ 'application.name' => 'required', @@ -72,7 +73,6 @@ class General extends Component 'application.post_deployment_command' => 'nullable', 'application.post_deployment_command_container' => 'nullable', 'application.settings.is_static' => 'boolean|required', - 'application.settings.is_raw_compose_deployment_enabled' => 'boolean|required', 'application.settings.is_build_server_enabled' => 'boolean|required', 'application.watch_paths' => 'nullable', ]; @@ -108,7 +108,6 @@ class General extends Component 'application.docker_compose_custom_start_command' => 'Docker compose custom start command', 'application.docker_compose_custom_build_command' => 'Docker compose custom build command', 'application.settings.is_static' => 'Is static', - 'application.settings.is_raw_compose_deployment_enabled' => 'Is raw compose deployment enabled', 'application.settings.is_build_server_enabled' => 'Is build server enabled', 'application.watch_paths' => 'Watch paths', ]; @@ -337,11 +336,6 @@ class General extends Component check_domain_usage(resource: $this->application); } } - if ($this->application->settings->is_raw_compose_deployment_enabled) { - $this->application->parseRawCompose(); - } else { - $this->parsedServices = $this->application->parseCompose(); - } } $this->application->custom_labels = base64_encode($this->customLabels); $this->application->save(); diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index 966b1db59..25c8cfb81 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -1424,6 +1424,14 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal foreach ($definedNetwork as $key => $network) { $networks->put($network, null); } + if (data_get($resource, 'settings.connect_to_docker_network')) { + $network = $resource->destination->network; + $networks->put($network, null); + $topLevelNetworks->put($network, [ + 'name' => $network, + 'external' => true + ]); + } data_set($service, 'networks', $networks->toArray()); // Get variables from the service foreach ($serviceVariables as $variableName => $variable) { @@ -1585,7 +1593,6 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal $fqdns = data_get($domains, "$serviceName.domain"); if ($fqdns) { $fqdns = str($fqdns)->explode(','); - $uuid = new Cuid2(7); if ($pull_request_id !== 0) { $fqdns = $fqdns->map(function ($fqdn) use ($pull_request_id, $resource) { $preview = ApplicationPreview::findPreviewByApplicationAndPullId($resource->id, $pull_request_id); @@ -1604,13 +1611,13 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal }); } $serviceLabels = $serviceLabels->merge(fqdnLabelsForTraefik( - uuid: $uuid, + uuid: $resource->uuid, domains: $fqdns, serviceLabels: $serviceLabels )); $serviceLabels = $serviceLabels->merge(fqdnLabelsForCaddy( network: $resource->destination->network, - uuid: $uuid, + uuid: $resource->uuid, domains: $fqdns, serviceLabels: $serviceLabels )); diff --git a/database/migrations/2024_04_25_073615_add_docker_network_to_application_settings.php b/database/migrations/2024_04_25_073615_add_docker_network_to_application_settings.php new file mode 100644 index 000000000..aeae6f77d --- /dev/null +++ b/database/migrations/2024_04_25_073615_add_docker_network_to_application_settings.php @@ -0,0 +1,29 @@ +boolean('connect_to_docker_network')->default(false); + + }); + } + + /** + * Reverse the migrations. + */ + public function down(): void + { + Schema::table('application_settings', function (Blueprint $table) { + $table->dropColumn('connect_to_docker_network'); + }); + } +}; diff --git a/resources/views/livewire/project/application/advanced.blade.php b/resources/views/livewire/project/application/advanced.blade.php index 75a55c5b9..5d2922a7e 100644 --- a/resources/views/livewire/project/application/advanced.blade.php +++ b/resources/views/livewire/project/application/advanced.blade.php @@ -25,8 +25,21 @@ instantSave id="is_gzip_enabled" /> -

Logs

+ @if ($application->build_pack === 'dockercompose') + + @endif + @if ($application->build_pack === 'dockercompose') +

Network

+
+ +
+ @endif @if (!$application->settings->is_raw_compose_deployment_enabled) +

Logs

@endif diff --git a/resources/views/livewire/project/application/general.blade.php b/resources/views/livewire/project/application/general.blade.php index 558db9c3c..de83b03ee 100644 --- a/resources/views/livewire/project/application/general.blade.php +++ b/resources/views/livewire/project/application/general.blade.php @@ -4,7 +4,7 @@

General

Save - +
General configuration for your application.
@@ -38,13 +38,8 @@
@endif @if ($application->build_pack === 'dockercompose') -
- -
@if (count($parsedServices) > 0 && !$application->settings->is_raw_compose_deployment_enabled) -

Domains

+

Domains

@foreach (data_get($parsedServices, 'services') as $serviceName => $service) @if (!isDatabaseImage(data_get($service, 'image')))
From a72a25640f0317a8fd127bd54df68a12cbefe654 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 11:53:06 +0200 Subject: [PATCH 04/25] fix: do no able to delete gh app without deleting resources --- .../views/livewire/source/github/change.blade.php | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/resources/views/livewire/source/github/change.blade.php b/resources/views/livewire/source/github/change.blade.php index b1f0cf709..932e352f3 100644 --- a/resources/views/livewire/source/github/change.blade.php +++ b/resources/views/livewire/source/github/change.blade.php @@ -13,9 +13,15 @@ @endif - - This source will be deleted. It is not reversible.
Please think again. -
+ @if ($applications->count() > 0) + + This source will be deleted. It is not reversible.
Please think again. +
+ @else + + This source will be deleted. It is not reversible.
Please think again. +
+ @endif
Your Private GitHub App for private repositories.
From ee69cdbf7b31b6a6024757ede55d49e3bd290b52 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 12:09:36 +0200 Subject: [PATCH 05/25] fix: 500 error on edge case --- .../views/livewire/project/application/source.blade.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/resources/views/livewire/project/application/source.blade.php b/resources/views/livewire/project/application/source.blade.php index 84aec3e81..4fe26bcc6 100644 --- a/resources/views/livewire/project/application/source.blade.php +++ b/resources/views/livewire/project/application/source.blade.php @@ -36,10 +36,10 @@ label="Commit SHA" /> - @isset($application->private_key_id) + @if(data_get($application, 'private_key_id'))

Deploy Key

Currently attached Private Key: {{ $application->private_key->name }} + class="dark:text-warning">{{ data_get($application, 'private_key.name') }}

Select another Private Key

@@ -49,6 +49,6 @@ @endforeach - @endisset + @endif From 2770755f9d7448a42f724ba1770c96c23e41176a Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 12:09:46 +0200 Subject: [PATCH 06/25] feat: add db name to backup notifications --- app/Models/StandaloneClickhouse.php | 3 +++ app/Models/StandaloneDragonfly.php | 3 +++ app/Models/StandaloneKeydb.php | 4 +++- app/Models/StandaloneMariadb.php | 3 +++ app/Models/StandaloneMongodb.php | 3 +++ app/Models/StandaloneMysql.php | 3 +++ app/Models/StandalonePostgresql.php | 3 +++ app/Models/StandaloneRedis.php | 3 +++ app/Notifications/Database/BackupFailed.php | 7 +++++-- app/Notifications/Database/BackupSuccess.php | 7 +++++-- resources/views/emails/backup-failed.blade.php | 2 +- resources/views/emails/backup-success.blade.php | 2 +- 12 files changed, 36 insertions(+), 7 deletions(-) diff --git a/app/Models/StandaloneClickhouse.php b/app/Models/StandaloneClickhouse.php index 2197d51df..3746a32f5 100644 --- a/app/Models/StandaloneClickhouse.php +++ b/app/Models/StandaloneClickhouse.php @@ -207,4 +207,7 @@ class StandaloneClickhouse extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return $this->clickhouse_db; + } } diff --git a/app/Models/StandaloneDragonfly.php b/app/Models/StandaloneDragonfly.php index 7b18666b8..adc1ea6cc 100644 --- a/app/Models/StandaloneDragonfly.php +++ b/app/Models/StandaloneDragonfly.php @@ -207,4 +207,7 @@ class StandaloneDragonfly extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return '0'; + } } diff --git a/app/Models/StandaloneKeydb.php b/app/Models/StandaloneKeydb.php index 1dc55228a..ff91322a0 100644 --- a/app/Models/StandaloneKeydb.php +++ b/app/Models/StandaloneKeydb.php @@ -208,5 +208,7 @@ class StandaloneKeydb extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } - + public function database_name() { + return '0'; + } } diff --git a/app/Models/StandaloneMariadb.php b/app/Models/StandaloneMariadb.php index 5e18bbfde..37d39f882 100644 --- a/app/Models/StandaloneMariadb.php +++ b/app/Models/StandaloneMariadb.php @@ -208,4 +208,7 @@ class StandaloneMariadb extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return $this->mariadb_database; + } } diff --git a/app/Models/StandaloneMongodb.php b/app/Models/StandaloneMongodb.php index 8e4d327a3..5538efe1a 100644 --- a/app/Models/StandaloneMongodb.php +++ b/app/Models/StandaloneMongodb.php @@ -223,4 +223,7 @@ class StandaloneMongodb extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return $this->mongo_db; + } } diff --git a/app/Models/StandaloneMysql.php b/app/Models/StandaloneMysql.php index eede451d7..53e9b6f22 100644 --- a/app/Models/StandaloneMysql.php +++ b/app/Models/StandaloneMysql.php @@ -209,4 +209,7 @@ class StandaloneMysql extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return $this->mysql_database; + } } diff --git a/app/Models/StandalonePostgresql.php b/app/Models/StandalonePostgresql.php index cf449a815..6435c49de 100644 --- a/app/Models/StandalonePostgresql.php +++ b/app/Models/StandalonePostgresql.php @@ -208,4 +208,7 @@ class StandalonePostgresql extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return $this->postgres_db; + } } diff --git a/app/Models/StandaloneRedis.php b/app/Models/StandaloneRedis.php index da4701df9..de18c8c07 100644 --- a/app/Models/StandaloneRedis.php +++ b/app/Models/StandaloneRedis.php @@ -204,4 +204,7 @@ class StandaloneRedis extends BaseModel { return $this->morphMany(ScheduledDatabaseBackup::class, 'database'); } + public function database_name() { + return '0'; + } } diff --git a/app/Notifications/Database/BackupFailed.php b/app/Notifications/Database/BackupFailed.php index f149a9d06..3aa63ffd9 100644 --- a/app/Notifications/Database/BackupFailed.php +++ b/app/Notifications/Database/BackupFailed.php @@ -17,11 +17,13 @@ class BackupFailed extends Notification implements ShouldQueue public $tries = 1; public string $name; + public string $database_name; public string $frequency; public function __construct(ScheduledDatabaseBackup $backup, public $database, public $output) { $this->name = $database->name; + $this->database_name = $database->database_name(); $this->frequency = $backup->frequency; } @@ -36,6 +38,7 @@ class BackupFailed extends Notification implements ShouldQueue $mail->subject("Coolify: [ACTION REQUIRED] Backup FAILED for {$this->database->name}"); $mail->view('emails.backup-failed', [ 'name' => $this->name, + 'database_name' => $this->database_name, 'frequency' => $this->frequency, 'output' => $this->output, ]); @@ -44,11 +47,11 @@ class BackupFailed extends Notification implements ShouldQueue public function toDiscord(): string { - return "Coolify: Database backup for {$this->name} with frequency of {$this->frequency} was FAILED.\n\nReason: {$this->output}"; + return "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason: {$this->output}"; } public function toTelegram(): array { - $message = "Coolify: Database backup for {$this->name} with frequency of {$this->frequency} was FAILED.\n\nReason: {$this->output}"; + $message = "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was FAILED.\n\nReason: {$this->output}"; return [ "message" => $message, ]; diff --git a/app/Notifications/Database/BackupSuccess.php b/app/Notifications/Database/BackupSuccess.php index bbe0bc6d3..9ca3234e1 100644 --- a/app/Notifications/Database/BackupSuccess.php +++ b/app/Notifications/Database/BackupSuccess.php @@ -14,11 +14,13 @@ class BackupSuccess extends Notification implements ShouldQueue public $tries = 1; public string $name; + public string $database_name; public string $frequency; public function __construct(ScheduledDatabaseBackup $backup, public $database) { $this->name = $database->name; + $this->database_name = $database->database_name(); $this->frequency = $backup->frequency; } @@ -33,6 +35,7 @@ class BackupSuccess extends Notification implements ShouldQueue $mail->subject("Coolify: Backup successfully done for {$this->database->name}"); $mail->view('emails.backup-success', [ 'name' => $this->name, + 'database_name' => $this->database_name, 'frequency' => $this->frequency, ]); return $mail; @@ -40,11 +43,11 @@ class BackupSuccess extends Notification implements ShouldQueue public function toDiscord(): string { - return "Coolify: Database backup for {$this->name} with frequency of {$this->frequency} was successful."; + return "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful."; } public function toTelegram(): array { - $message = "Coolify: Database backup for {$this->name} with frequency of {$this->frequency} was successful."; + $message = "Coolify: Database backup for {$this->name} (db:{$this->database_name}) with frequency of {$this->frequency} was successful."; return [ "message" => $message, ]; diff --git a/resources/views/emails/backup-failed.blade.php b/resources/views/emails/backup-failed.blade.php index de6a7c981..f50ff0c33 100644 --- a/resources/views/emails/backup-failed.blade.php +++ b/resources/views/emails/backup-failed.blade.php @@ -1,5 +1,5 @@ -Database backup for {{ $name }} with frequency of {{ $frequency }} was FAILED. +Database backup for {{ $name }} (db:{{$database_name}}) with frequency of {{ $frequency }} was FAILED. ### Reason diff --git a/resources/views/emails/backup-success.blade.php b/resources/views/emails/backup-success.blade.php index 0d54a254c..e48df9e6a 100644 --- a/resources/views/emails/backup-success.blade.php +++ b/resources/views/emails/backup-success.blade.php @@ -1,3 +1,3 @@ -Database backup for {{ $name }} with frequency of {{ $frequency }} was successful. +Database backup for {{ $name }} (db:{{ $database_name }}) with frequency of {{ $frequency }} was successful. From c17bd5ec3abab64a15634aabfb12c6f67eb70bcd Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 12:14:02 +0200 Subject: [PATCH 07/25] fix: able to select server when creating new destination --- .../livewire/destination/new/docker.blade.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/resources/views/livewire/destination/new/docker.blade.php b/resources/views/livewire/destination/new/docker.blade.php index d05218def..a6da63c6c 100644 --- a/resources/views/livewire/destination/new/docker.blade.php +++ b/resources/views/livewire/destination/new/docker.blade.php @@ -5,14 +5,12 @@ - @if ($server_id) - - - @foreach ($servers as $server) - - @endforeach - - @endif + + + @foreach ($servers as $server) + + @endforeach + Continue From 672ad22e4f958b058716f549b8aaec248edc8204 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 12:32:35 +0200 Subject: [PATCH 08/25] fix: n8n template --- templates/compose/n8n-with-postgresql.yaml | 4 ++-- templates/compose/n8n.yaml | 4 ++-- templates/service-templates.json | 4 ++-- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/templates/compose/n8n-with-postgresql.yaml b/templates/compose/n8n-with-postgresql.yaml index d68aa845b..bda0bff97 100644 --- a/templates/compose/n8n-with-postgresql.yaml +++ b/templates/compose/n8n-with-postgresql.yaml @@ -12,8 +12,8 @@ services: - N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N} - WEBHOOK_URL=${SERVICE_FQDN_N8N} - N8N_HOST=${SERVICE_URL_N8N} - - GENERIC_TIMEZONE="Europe/Berlin" - - TZ="Europe/Berlin" + - GENERIC_TIMEZONE=Europe/Berlin + - TZ=Europe/Berlin - DB_TYPE=postgresdb - DB_POSTGRESDB_DATABASE=${POSTGRES_DB:-n8n} - DB_POSTGRESDB_HOST=postgresql diff --git a/templates/compose/n8n.yaml b/templates/compose/n8n.yaml index b166d4bf0..62c219a87 100644 --- a/templates/compose/n8n.yaml +++ b/templates/compose/n8n.yaml @@ -12,8 +12,8 @@ services: - N8N_EDITOR_BASE_URL=${SERVICE_FQDN_N8N} - WEBHOOK_URL=${SERVICE_FQDN_N8N} - N8N_HOST=${SERVICE_URL_N8N} - - GENERIC_TIMEZONE="Europe/Berlin" - - TZ="Europe/Berlin" + - GENERIC_TIMEZONE=Europe/Berlin + - TZ=Europe/Berlin volumes: - n8n-data:/home/node/.n8n healthcheck: diff --git a/templates/service-templates.json b/templates/service-templates.json index 32bad0761..29d0989d4 100644 --- a/templates/service-templates.json +++ b/templates/service-templates.json @@ -601,7 +601,7 @@ "n8n-with-postgresql": { "documentation": "https:\/\/n8n.io", "slogan": "n8n is an extendable workflow automation tool.", - "compose": "c2VydmljZXM6CiAgbjhuOgogICAgaW1hZ2U6IGRvY2tlci5uOG4uaW8vbjhuaW8vbjhuCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fTjhOXzU2NzgKICAgICAgLSAnTjhOX0VESVRPUl9CQVNFX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdXRUJIT09LX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdOOE5fSE9TVD0ke1NFUlZJQ0VfVVJMX044Tn0nCiAgICAgIC0gJ0dFTkVSSUNfVElNRVpPTkU9IkV1cm9wZS9CZXJsaW4iJwogICAgICAtICdUWj0iRXVyb3BlL0JlcmxpbiInCiAgICAgIC0gREJfVFlQRT1wb3N0Z3Jlc2RiCiAgICAgIC0gJ0RCX1BPU1RHUkVTREJfREFUQUJBU0U9JHtQT1NUR1JFU19EQjotbjhufScKICAgICAgLSBEQl9QT1NUR1JFU0RCX0hPU1Q9cG9zdGdyZXNxbAogICAgICAtIERCX1BPU1RHUkVTREJfUE9SVD01NDMyCiAgICAgIC0gREJfUE9TVEdSRVNEQl9VU0VSPSRTRVJWSUNFX1VTRVJfUE9TVEdSRVMKICAgICAgLSBEQl9QT1NUR1JFU0RCX1NDSEVNQT1wdWJsaWMKICAgICAgLSBEQl9QT1NUR1JFU0RCX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTCiAgICB2b2x1bWVzOgogICAgICAtICduOG4tZGF0YTovaG9tZS9ub2RlLy5uOG4nCiAgICBkZXBlbmRzX29uOgogICAgICBwb3N0Z3Jlc3FsOgogICAgICAgIGNvbmRpdGlvbjogc2VydmljZV9oZWFsdGh5CiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3dnZXQgLXFPLSBodHRwOi8vbG9jYWxob3N0OjU2NzgvJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCiAgcG9zdGdyZXNxbDoKICAgIGltYWdlOiAncG9zdGdyZXM6MTYtYWxwaW5lJwogICAgdm9sdW1lczoKICAgICAgLSAncG9zdGdyZXNxbC1kYXRhOi92YXIvbGliL3Bvc3RncmVzcWwvZGF0YScKICAgIGVudmlyb25tZW50OgogICAgICAtIFBPU1RHUkVTX1VTRVI9JFNFUlZJQ0VfVVNFUl9QT1NUR1JFUwogICAgICAtIFBPU1RHUkVTX1BBU1NXT1JEPSRTRVJWSUNFX1BBU1NXT1JEX1BPU1RHUkVTCiAgICAgIC0gJ1BPU1RHUkVTX0RCPSR7UE9TVEdSRVNfREI6LW44bn0nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3BnX2lzcmVhZHkgLVUgJCR7UE9TVEdSRVNfVVNFUn0gLWQgJCR7UE9TVEdSRVNfREJ9JwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgbjhuOgogICAgaW1hZ2U6IGRvY2tlci5uOG4uaW8vbjhuaW8vbjhuCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fTjhOXzU2NzgKICAgICAgLSAnTjhOX0VESVRPUl9CQVNFX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdXRUJIT09LX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdOOE5fSE9TVD0ke1NFUlZJQ0VfVVJMX044Tn0nCiAgICAgIC0gR0VORVJJQ19USU1FWk9ORT1FdXJvcGUvQmVybGluCiAgICAgIC0gVFo9RXVyb3BlL0JlcmxpbgogICAgICAtIERCX1RZUEU9cG9zdGdyZXNkYgogICAgICAtICdEQl9QT1NUR1JFU0RCX0RBVEFCQVNFPSR7UE9TVEdSRVNfREI6LW44bn0nCiAgICAgIC0gREJfUE9TVEdSRVNEQl9IT1NUPXBvc3RncmVzcWwKICAgICAgLSBEQl9QT1NUR1JFU0RCX1BPUlQ9NTQzMgogICAgICAtIERCX1BPU1RHUkVTREJfVVNFUj0kU0VSVklDRV9VU0VSX1BPU1RHUkVTCiAgICAgIC0gREJfUE9TVEdSRVNEQl9TQ0hFTUE9cHVibGljCiAgICAgIC0gREJfUE9TVEdSRVNEQl9QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFUwogICAgdm9sdW1lczoKICAgICAgLSAnbjhuLWRhdGE6L2hvbWUvbm9kZS8ubjhuJwogICAgZGVwZW5kc19vbjoKICAgICAgcG9zdGdyZXNxbDoKICAgICAgICBjb25kaXRpb246IHNlcnZpY2VfaGVhbHRoeQogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICd3Z2V0IC1xTy0gaHR0cDovL2xvY2FsaG9zdDo1Njc4LycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAogIHBvc3RncmVzcWw6CiAgICBpbWFnZTogJ3Bvc3RncmVzOjE2LWFscGluZScKICAgIHZvbHVtZXM6CiAgICAgIC0gJ3Bvc3RncmVzcWwtZGF0YTovdmFyL2xpYi9wb3N0Z3Jlc3FsL2RhdGEnCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBQT1NUR1JFU19VU0VSPSRTRVJWSUNFX1VTRVJfUE9TVEdSRVMKICAgICAgLSBQT1NUR1JFU19QQVNTV09SRD0kU0VSVklDRV9QQVNTV09SRF9QT1NUR1JFUwogICAgICAtICdQT1NUR1JFU19EQj0ke1BPU1RHUkVTX0RCOi1uOG59JwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICdwZ19pc3JlYWR5IC1VICQke1BPU1RHUkVTX1VTRVJ9IC1kICQke1BPU1RHUkVTX0RCfScKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=", "tags": [ "n8n", "workflow", @@ -618,7 +618,7 @@ "n8n": { "documentation": "https:\/\/n8n.io", "slogan": "n8n is an extendable workflow automation tool.", - "compose": "c2VydmljZXM6CiAgbjhuOgogICAgaW1hZ2U6IGRvY2tlci5uOG4uaW8vbjhuaW8vbjhuCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fTjhOXzU2NzgKICAgICAgLSAnTjhOX0VESVRPUl9CQVNFX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdXRUJIT09LX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdOOE5fSE9TVD0ke1NFUlZJQ0VfVVJMX044Tn0nCiAgICAgIC0gJ0dFTkVSSUNfVElNRVpPTkU9IkV1cm9wZS9CZXJsaW4iJwogICAgICAtICdUWj0iRXVyb3BlL0JlcmxpbiInCiAgICB2b2x1bWVzOgogICAgICAtICduOG4tZGF0YTovaG9tZS9ub2RlLy5uOG4nCiAgICBoZWFsdGhjaGVjazoKICAgICAgdGVzdDoKICAgICAgICAtIENNRC1TSEVMTAogICAgICAgIC0gJ3dnZXQgLXFPLSBodHRwOi8vbG9jYWxob3N0OjU2NzgvJwogICAgICBpbnRlcnZhbDogNXMKICAgICAgdGltZW91dDogMjBzCiAgICAgIHJldHJpZXM6IDEwCg==", + "compose": "c2VydmljZXM6CiAgbjhuOgogICAgaW1hZ2U6IGRvY2tlci5uOG4uaW8vbjhuaW8vbjhuCiAgICBlbnZpcm9ubWVudDoKICAgICAgLSBTRVJWSUNFX0ZRRE5fTjhOXzU2NzgKICAgICAgLSAnTjhOX0VESVRPUl9CQVNFX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdXRUJIT09LX1VSTD0ke1NFUlZJQ0VfRlFETl9OOE59JwogICAgICAtICdOOE5fSE9TVD0ke1NFUlZJQ0VfVVJMX044Tn0nCiAgICAgIC0gR0VORVJJQ19USU1FWk9ORT1FdXJvcGUvQmVybGluCiAgICAgIC0gVFo9RXVyb3BlL0JlcmxpbgogICAgdm9sdW1lczoKICAgICAgLSAnbjhuLWRhdGE6L2hvbWUvbm9kZS8ubjhuJwogICAgaGVhbHRoY2hlY2s6CiAgICAgIHRlc3Q6CiAgICAgICAgLSBDTUQtU0hFTEwKICAgICAgICAtICd3Z2V0IC1xTy0gaHR0cDovL2xvY2FsaG9zdDo1Njc4LycKICAgICAgaW50ZXJ2YWw6IDVzCiAgICAgIHRpbWVvdXQ6IDIwcwogICAgICByZXRyaWVzOiAxMAo=", "tags": [ "n8n", "workflow", From b28611ed08a47bd20c41798416d90ecea95deeac Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 12:59:25 +0200 Subject: [PATCH 09/25] Fix typo in create-scheduled-backup.blade.php --- .../livewire/project/database/create-scheduled-backup.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/livewire/project/database/create-scheduled-backup.blade.php b/resources/views/livewire/project/database/create-scheduled-backup.blade.php index da7871b0b..3b7c9e74d 100644 --- a/resources/views/livewire/project/database/create-scheduled-backup.blade.php +++ b/resources/views/livewire/project/database/create-scheduled-backup.blade.php @@ -10,7 +10,7 @@ @endforeach @endif - + Save From 4fe90e59a8445b8147e641d577f5ba25a0fdee2a Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 13:01:40 +0200 Subject: [PATCH 10/25] Fix formatting issue in select.blade.php --- resources/views/livewire/project/new/select.blade.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/resources/views/livewire/project/new/select.blade.php b/resources/views/livewire/project/new/select.blade.php index 33984ac93..fde6348ed 100644 --- a/resources/views/livewire/project/new/select.blade.php +++ b/resources/views/livewire/project/new/select.blade.php @@ -576,9 +576,9 @@ @empty
No service found. Please try to reload the list!
@endforelse + @endif - @endif @if ($current_step === 'servers')

Select a server

@@ -645,4 +645,3 @@ @endif - From 40f3301324a2d002239c6b3ed482135a79228b28 Mon Sep 17 00:00:00 2001 From: Andras Bacsai Date: Thu, 25 Apr 2024 13:10:50 +0200 Subject: [PATCH 11/25] Fix remove dropzone script async attribute --- resources/views/livewire/project/database/import.blade.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/resources/views/livewire/project/database/import.blade.php b/resources/views/livewire/project/database/import.blade.php index 01480fcdc..425383704 100644 --- a/resources/views/livewire/project/database/import.blade.php +++ b/resources/views/livewire/project/database/import.blade.php @@ -1,7 +1,7 @@
+ crossorigin="anonymous" referrerpolicy="no-referrer"> @script --}} +
diff --git a/resources/views/livewire/tags/deployments.blade.php b/resources/views/livewire/tags/deployments.blade.php new file mode 100644 index 000000000..4d8581f79 --- /dev/null +++ b/resources/views/livewire/tags/deployments.blade.php @@ -0,0 +1,28 @@ +
+ @forelse ($deployments_per_tag_per_server as $server_name => $deployments) +

{{ $server_name }}

+
+ @foreach ($deployments as $deployment) +
data_get($deployment, 'status') === 'queued', + 'border-yellow-500' => data_get($deployment, 'status') === 'in_progress', + ])> + +
+
+ {{ data_get($deployment, 'application_name') }} +
+
+ {{ str(data_get($deployment, 'status'))->headline() }} +
+
+
+
+
+ @endforeach +
+ @empty +
No deployments running.
+ @endforelse +
diff --git a/resources/views/livewire/tags/index.blade.php b/resources/views/livewire/tags/index.blade.php index 11442c1f2..1fd62cefe 100644 --- a/resources/views/livewire/tags/index.blade.php +++ b/resources/views/livewire/tags/index.blade.php @@ -6,12 +6,11 @@ @if ($tags->count() === 0)
No tags yet defined yet. Go to a resource and add a tag there.
@else - - + @foreach ($tags as $oneTag) @endforeach - + @if ($tag)
@@ -51,34 +50,7 @@ @endif
-
- @forelse ($deployments_per_tag_per_server as $server_name => $deployments) -

{{ $server_name }}

-
- @foreach ($deployments as $deployment) -
data_get($deployment, 'status') === 'queued', - 'border-yellow-500' => data_get($deployment, 'status') === 'in_progress', - ])> - -
-
- {{ data_get($deployment, 'application_name') }} -
-
- {{ str(data_get($deployment, 'status'))->headline() }} -
-
-
-
-
- @endforeach -
- @empty -
No deployments running.
- @endforelse -
+
@endif @endif