fix: able to support more database dynamically from Coolify's UI
This commit is contained in:
@@ -770,9 +770,34 @@ class Service extends BaseModel
|
|||||||
}
|
}
|
||||||
$fields->put('Code Server', $data->toArray());
|
$fields->put('Code Server', $data->toArray());
|
||||||
break;
|
break;
|
||||||
|
case str($image)->contains('elestio/strapi'):
|
||||||
|
$data = collect([]);
|
||||||
|
$license = $this->environment_variables()->where('key', 'STRAPI_LICENSE')->first();
|
||||||
|
if ($license) {
|
||||||
|
$data = $data->merge([
|
||||||
|
'License' => [
|
||||||
|
'key' => data_get($license, 'key'),
|
||||||
|
'value' => data_get($license, 'value'),
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
$nodeEnv = $this->environment_variables()->where('key', 'NODE_ENV')->first();
|
||||||
|
if ($nodeEnv) {
|
||||||
|
$data = $data->merge([
|
||||||
|
'Node Environment' => [
|
||||||
|
'key' => data_get($nodeEnv, 'key'),
|
||||||
|
'value' => data_get($nodeEnv, 'value'),
|
||||||
|
],
|
||||||
|
]);
|
||||||
|
}
|
||||||
|
|
||||||
|
$fields->put('Strapi', $data->toArray());
|
||||||
|
break;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$databases = $this->databases()->get();
|
$databases = $this->databases()->get();
|
||||||
|
ray($databases);
|
||||||
|
|
||||||
foreach ($databases as $database) {
|
foreach ($databases as $database) {
|
||||||
$image = str($database->image)->before(':')->value();
|
$image = str($database->image)->before(':')->value();
|
||||||
@@ -1108,7 +1133,6 @@ class Service extends BaseModel
|
|||||||
$real_value = escapeEnvVariables($env->real_value);
|
$real_value = escapeEnvVariables($env->real_value);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
ray("echo \"{$env->key}={$real_value}\" >> .env");
|
|
||||||
$commands[] = "echo \"{$env->key}={$real_value}\" >> .env";
|
$commands[] = "echo \"{$env->key}={$real_value}\" >> .env";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@@ -34,6 +34,7 @@ const DATABASE_DOCKER_IMAGES = [
|
|||||||
'influxdb',
|
'influxdb',
|
||||||
'clickhouse/clickhouse-server',
|
'clickhouse/clickhouse-server',
|
||||||
'supabase/postgres',
|
'supabase/postgres',
|
||||||
|
'elestio/postgres',
|
||||||
];
|
];
|
||||||
const SPECIFIC_SERVICES = [
|
const SPECIFIC_SERVICES = [
|
||||||
'quay.io/minio/minio',
|
'quay.io/minio/minio',
|
||||||
|
@@ -2984,11 +2984,22 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
|
|||||||
$predefinedPort = '8000';
|
$predefinedPort = '8000';
|
||||||
}
|
}
|
||||||
if ($isDatabase) {
|
if ($isDatabase) {
|
||||||
$savedService = ServiceDatabase::firstOrCreate([
|
$applicationFound = ServiceApplication::where('name', $serviceName)->where('image', $image)->where('service_id', $resource->id)->first();
|
||||||
'name' => $serviceName,
|
if ($applicationFound) {
|
||||||
'image' => $image,
|
$savedService = $applicationFound;
|
||||||
'service_id' => $resource->id,
|
$savedService = ServiceDatabase::firstOrCreate([
|
||||||
]);
|
'name' => $applicationFound->name,
|
||||||
|
'image' => $applicationFound->image,
|
||||||
|
'service_id' => $applicationFound->service_id,
|
||||||
|
]);
|
||||||
|
$applicationFound->delete();
|
||||||
|
} else {
|
||||||
|
$savedService = ServiceDatabase::firstOrCreate([
|
||||||
|
'name' => $serviceName,
|
||||||
|
'image' => $image,
|
||||||
|
'service_id' => $resource->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$savedService = ServiceApplication::firstOrCreate([
|
$savedService = ServiceApplication::firstOrCreate([
|
||||||
'name' => $serviceName,
|
'name' => $serviceName,
|
||||||
@@ -3209,12 +3220,24 @@ function newParser(Application|Service $resource, int $pull_request_id = 0, ?int
|
|||||||
if ($serviceName === 'plausible') {
|
if ($serviceName === 'plausible') {
|
||||||
$predefinedPort = '8000';
|
$predefinedPort = '8000';
|
||||||
}
|
}
|
||||||
|
|
||||||
if ($isDatabase) {
|
if ($isDatabase) {
|
||||||
$savedService = ServiceDatabase::firstOrCreate([
|
$applicationFound = ServiceApplication::where('name', $serviceName)->where('image', $image)->where('service_id', $resource->id)->first();
|
||||||
'name' => $serviceName,
|
if ($applicationFound) {
|
||||||
'image' => $image,
|
$savedService = $applicationFound;
|
||||||
'service_id' => $resource->id,
|
$savedService = ServiceDatabase::firstOrCreate([
|
||||||
]);
|
'name' => $applicationFound->name,
|
||||||
|
'image' => $applicationFound->image,
|
||||||
|
'service_id' => $applicationFound->service_id,
|
||||||
|
]);
|
||||||
|
$applicationFound->delete();
|
||||||
|
} else {
|
||||||
|
$savedService = ServiceDatabase::firstOrCreate([
|
||||||
|
'name' => $serviceName,
|
||||||
|
'image' => $image,
|
||||||
|
'service_id' => $resource->id,
|
||||||
|
]);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
$savedService = ServiceApplication::firstOrCreate([
|
$savedService = ServiceApplication::firstOrCreate([
|
||||||
'name' => $serviceName,
|
'name' => $serviceName,
|
||||||
|
Reference in New Issue
Block a user