diff --git a/app/Http/Livewire/Project/Application/General.php b/app/Http/Livewire/Project/Application/General.php index c99650912..b4ebfff5d 100644 --- a/app/Http/Livewire/Project/Application/General.php +++ b/app/Http/Livewire/Project/Application/General.php @@ -119,6 +119,7 @@ class General extends Component public function instantSave() { // @TODO: find another way - if possible + $force_https = $this->application->settings->is_force_https_enabled; $this->application->settings->is_static = $this->is_static; if ($this->is_static) { $this->application->ports_exposes = 80; @@ -137,6 +138,9 @@ class General extends Component $this->emit('success', 'Application settings updated!'); $this->checkLabelUpdates(); $this->isConfigurationChanged = $this->application->isConfigurationChanged(); + if ($force_https !== $this->is_force_https_enabled) { + $this->resetDefaultLabels(false); + } } public function getWildcardDomain() diff --git a/app/Models/Service.php b/app/Models/Service.php index 9d14e18eb..95fe826fb 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -538,7 +538,7 @@ class Service extends BaseModel $serviceLabels = $serviceLabels->merge($defaultLabels); if (!$isDatabase && $fqdns->count() > 0) { if ($fqdns) { - $serviceLabels = $serviceLabels->merge(fqdnLabelsForTraefik($fqdns, true)); + $serviceLabels = $serviceLabels->merge(fqdnLabelsForTraefik($this->uuid, $fqdns, true)); } } data_set($service, 'labels', $serviceLabels->toArray()); diff --git a/bootstrap/helpers/docker.php b/bootstrap/helpers/docker.php index 4fc87ac13..179abecb9 100644 --- a/bootstrap/helpers/docker.php +++ b/bootstrap/helpers/docker.php @@ -147,12 +147,11 @@ function defaultLabels($id, $name, $pull_request_id = 0, string $type = 'applica } return $labels; } -function fqdnLabelsForTraefik(Collection $domains, bool $is_force_https_enabled, $onlyPort = null) +function fqdnLabelsForTraefik(string $uuid, Collection $domains, bool $is_force_https_enabled, $onlyPort = null) { $labels = collect([]); $labels->push('traefik.enable=true'); - foreach ($domains as $domain) { - $uuid = (string)new Cuid2(7); + foreach ($domains as $loop => $domain) { $url = Url::fromString($domain); $host = $url->getHost(); $path = $url->getPath(); @@ -161,8 +160,8 @@ function fqdnLabelsForTraefik(Collection $domains, bool $is_force_https_enabled, if (is_null($port) && !is_null($onlyPort)) { $port = $onlyPort; } - $http_label = "{$uuid}-http"; - $https_label = "{$uuid}-https"; + $http_label = "{$uuid}-{$loop}-http"; + $https_label = "{$uuid}-{$loop}-https"; if ($schema === 'https') { // Set labels for https @@ -213,13 +212,13 @@ function generateLabelsApplication(Application $application, ?ApplicationPreview $onlyPort = $ports[0]; } $pull_request_id = data_get($preview, 'pull_request_id', 0); - $container_name = generateApplicationContainerName($application, $pull_request_id); + // $container_name = generateApplicationContainerName($application, $pull_request_id); $appId = $application->id; if ($pull_request_id !== 0 && $pull_request_id !== null) { $appId = $appId . '-pr-' . $pull_request_id; } $labels = collect([]); - $labels = $labels->merge(defaultLabels($appId, $container_name, $pull_request_id)); + $labels = $labels->merge(defaultLabels($appId, $application->uuid, $pull_request_id)); if ($application->fqdn) { if ($pull_request_id !== 0) { $domains = Str::of(data_get($preview, 'fqdn'))->explode(','); @@ -227,8 +226,7 @@ function generateLabelsApplication(Application $application, ?ApplicationPreview $domains = Str::of(data_get($application, 'fqdn'))->explode(','); } // Add Traefik labels no matter which proxy is selected - $labels = $labels->merge(fqdnLabelsForTraefik($domains, $application->settings->is_force_https_enabled, $onlyPort)); + $labels = $labels->merge(fqdnLabelsForTraefik($application->uuid, $domains, $application->settings->is_force_https_enabled, $onlyPort)); } - ray($labels); return $labels->all(); } diff --git a/config/sentry.php b/config/sentry.php index 61c18786f..c6c30f70a 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.94', + 'release' => '4.0.0-beta.95', // 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 4daf3b070..b5427b80b 100644 --- a/config/version.php +++ b/config/version.php @@ -1,3 +1,3 @@