diff --git a/app/Livewire/Project/Service/StackForm.php b/app/Livewire/Project/Service/StackForm.php index 9c98c4d9f..dee85ec54 100644 --- a/app/Livewire/Project/Service/StackForm.php +++ b/app/Livewire/Project/Service/StackForm.php @@ -3,12 +3,13 @@ namespace App\Livewire\Project\Service; use App\Models\Service; +use Illuminate\Support\Collection; use Livewire\Component; class StackForm extends Component { public Service $service; - public $fields = []; + public Collection $fields; protected $listeners = ["saveCompose"]; public $rules = [ 'service.docker_compose_raw' => 'required', @@ -20,6 +21,7 @@ class StackForm extends Component public $validationAttributes = []; public function mount() { + $this->fields = collect([]); $extraFields = $this->service->extraFields(); foreach ($extraFields as $serviceName => $fields) { foreach ($fields as $fieldKey => $field) { @@ -27,18 +29,20 @@ class StackForm extends Component $value = data_get($field, 'value'); $rules = data_get($field, 'rules', 'nullable'); $isPassword = data_get($field, 'isPassword'); - $this->fields[$key] = [ + $this->fields->put($key, [ "serviceName" => $serviceName, "key" => $key, "name" => $fieldKey, "value" => $value, "isPassword" => $isPassword, "rules" => $rules - ]; + ]); + $this->rules["fields.$key.value"] = $rules; $this->validationAttributes["fields.$key.value"] = $fieldKey; } } + $this->fields = $this->fields->sort(); } public function saveCompose($raw) { diff --git a/app/Models/Service.php b/app/Models/Service.php index c15f090a9..bcffa0863 100644 --- a/app/Models/Service.php +++ b/app/Models/Service.php @@ -18,7 +18,6 @@ class Service extends BaseModel $domains = implode(',', $domains); $applicationImages = $this->applications()->get()->pluck('image')->sort(); - ray($applicationImages->toArray()); $databaseImages = $this->databases()->get()->pluck('image')->sort(); $images = $applicationImages->merge($databaseImages); $images = implode(',', $images->toArray()); diff --git a/bootstrap/helpers/shared.php b/bootstrap/helpers/shared.php index 4533d098b..afb7982a7 100644 --- a/bootstrap/helpers/shared.php +++ b/bootstrap/helpers/shared.php @@ -656,6 +656,9 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal if (str(data_get($service, 'image'))->contains('glitchtip')) { $tempServiceName = 'glitchtip'; } + if ($serviceName === 'supabase-kong') { + $tempServiceName = 'supabase'; + } $serviceDefinition = data_get($allServices, $tempServiceName); $predefinedPort = data_get($serviceDefinition, 'port'); if ($serviceName === 'plausible') { @@ -977,12 +980,14 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal ]); } // Caddy needs exact port in some cases. + ray($predefinedPort); if ($predefinedPort && !$key->endsWith("_{$predefinedPort}")) { if ($resource->server->proxyType() === 'CADDY') { $env = EnvironmentVariable::where([ 'key' => $key, 'service_id' => $resource->id, ])->first(); + ray($env); if ($env) { $env_url = Url::fromString($savedService->fqdn); $env_port = $env_url->getPort(); @@ -1482,7 +1487,6 @@ function parseDockerComposeFile(Service|Application $resource, bool $isNew = fal 'application_id' => $resource->id, ])->first(); ['command' => $command, 'forService' => $forService, 'generatedValue' => $generatedValue, 'port' => $port] = parseEnvVariable($value); - ray($command, $generatedValue); if (!is_null($command)) { if ($command?->value() === 'FQDN' || $command?->value() === 'URL') { if (Str::lower($forService) === $serviceName) { diff --git a/resources/views/livewire/project/service/configuration.blade.php b/resources/views/livewire/project/service/configuration.blade.php index 0f847f5ec..df079f973 100644 --- a/resources/views/livewire/project/service/configuration.blade.php +++ b/resources/views/livewire/project/service/configuration.blade.php @@ -42,6 +42,7 @@