Skip to content

Commit ef44828

Browse files
committed
fix: able to support more database dynamically from Coolify's UI
1 parent 5282248 commit ef44828

File tree

3 files changed

+59
-11
lines changed

3 files changed

+59
-11
lines changed

app/Models/Service.php

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -770,9 +770,34 @@ public function extraFields()
770770
}
771771
$fields->put('Code Server', $data->toArray());
772772
break;
773+
case str($image)->contains('elestio/strapi'):
774+
$data = collect([]);
775+
$license = $this->environment_variables()->where('key', 'STRAPI_LICENSE')->first();
776+
if ($license) {
777+
$data = $data->merge([
778+
'License' => [
779+
'key' => data_get($license, 'key'),
780+
'value' => data_get($license, 'value'),
781+
],
782+
]);
783+
}
784+
$nodeEnv = $this->environment_variables()->where('key', 'NODE_ENV')->first();
785+
if ($nodeEnv) {
786+
$data = $data->merge([
787+
'Node Environment' => [
788+
'key' => data_get($nodeEnv, 'key'),
789+
'value' => data_get($nodeEnv, 'value'),
790+
],
791+
]);
792+
}
793+
794+
$fields->put('Strapi', $data->toArray());
795+
break;
796+
773797
}
774798
}
775799
$databases = $this->databases()->get();
800+
ray($databases);
776801

777802
foreach ($databases as $database) {
778803
$image = str($database->image)->before(':')->value();
@@ -1108,7 +1133,6 @@ public function saveComposeConfigs()
11081133
$real_value = escapeEnvVariables($env->real_value);
11091134
}
11101135
}
1111-
ray("echo \"{$env->key}={$real_value}\" >> .env");
11121136
$commands[] = "echo \"{$env->key}={$real_value}\" >> .env";
11131137
}
11141138
}

bootstrap/helpers/constants.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@
3434
'influxdb',
3535
'clickhouse/clickhouse-server',
3636
'supabase/postgres',
37+
'elestio/postgres',
3738
];
3839
const SPECIFIC_SERVICES = [
3940
'quay.io/minio/minio',

bootstrap/helpers/shared.php

Lines changed: 33 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2984,11 +2984,22 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
29842984
$predefinedPort = '8000';
29852985
}
29862986
if ($isDatabase) {
2987-
$savedService = ServiceDatabase::firstOrCreate([
2988-
'name' => $serviceName,
2989-
'image' => $image,
2990-
'service_id' => $resource->id,
2991-
]);
2987+
$applicationFound = ServiceApplication::where('name', $serviceName)->where('image', $image)->where('service_id', $resource->id)->first();
2988+
if ($applicationFound) {
2989+
$savedService = $applicationFound;
2990+
$savedService = ServiceDatabase::firstOrCreate([
2991+
'name' => $applicationFound->name,
2992+
'image' => $applicationFound->image,
2993+
'service_id' => $applicationFound->service_id,
2994+
]);
2995+
$applicationFound->delete();
2996+
} else {
2997+
$savedService = ServiceDatabase::firstOrCreate([
2998+
'name' => $serviceName,
2999+
'image' => $image,
3000+
'service_id' => $resource->id,
3001+
]);
3002+
}
29923003
} else {
29933004
$savedService = ServiceApplication::firstOrCreate([
29943005
'name' => $serviceName,
@@ -3209,12 +3220,24 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
32093220
if ($serviceName === 'plausible') {
32103221
$predefinedPort = '8000';
32113222
}
3223+
32123224
if ($isDatabase) {
3213-
$savedService = ServiceDatabase::firstOrCreate([
3214-
'name' => $serviceName,
3215-
'image' => $image,
3216-
'service_id' => $resource->id,
3217-
]);
3225+
$applicationFound = ServiceApplication::where('name', $serviceName)->where('image', $image)->where('service_id', $resource->id)->first();
3226+
if ($applicationFound) {
3227+
$savedService = $applicationFound;
3228+
$savedService = ServiceDatabase::firstOrCreate([
3229+
'name' => $applicationFound->name,
3230+
'image' => $applicationFound->image,
3231+
'service_id' => $applicationFound->service_id,
3232+
]);
3233+
$applicationFound->delete();
3234+
} else {
3235+
$savedService = ServiceDatabase::firstOrCreate([
3236+
'name' => $serviceName,
3237+
'image' => $image,
3238+
'service_id' => $resource->id,
3239+
]);
3240+
}
32183241
} else {
32193242
$savedService = ServiceApplication::firstOrCreate([
32203243
'name' => $serviceName,

0 commit comments

Comments
 (0)