refactor: remove debug echo statements from Init command to clean up output and improve readability

This commit is contained in:
Andras Bacsai
2025-01-17 12:35:22 +01:00
parent d043fbfeb9
commit 03c50a387c

View File

@@ -26,7 +26,6 @@ class Init extends Command
public function handle() public function handle()
{ {
echo "Starting handle()\n";
$this->optimize(); $this->optimize();
if (isCloud() && ! $this->option('force-cloud')) { if (isCloud() && ! $this->option('force-cloud')) {
@@ -35,7 +34,6 @@ class Init extends Command
return; return;
} }
echo "Loading servers...\n";
$this->servers = Server::all(); $this->servers = Server::all();
if (isCloud()) { if (isCloud()) {
echo "Running in cloud mode\n"; echo "Running in cloud mode\n";
@@ -45,7 +43,6 @@ class Init extends Command
get_public_ips(); get_public_ips();
} }
echo "Starting backward compatibility checks...\n";
// Backward compatibility // Backward compatibility
$this->replace_slash_in_environment_name(); $this->replace_slash_in_environment_name();
$this->restore_coolify_db_backup(); $this->restore_coolify_db_backup();
@@ -53,24 +50,18 @@ class Init extends Command
// //
$this->update_traefik_labels(); $this->update_traefik_labels();
if (! isCloud() || $this->option('force-cloud')) { if (! isCloud() || $this->option('force-cloud')) {
echo "Cleaning up unused networks...\n";
$this->cleanup_unused_network_from_coolify_proxy(); $this->cleanup_unused_network_from_coolify_proxy();
} }
if (isCloud()) { if (isCloud()) {
echo "Cleaning up unnecessary proxy configs...\n";
$this->cleanup_unnecessary_dynamic_proxy_configuration(); $this->cleanup_unnecessary_dynamic_proxy_configuration();
} else { } else {
echo "Cleaning up in-progress deployments...\n";
$this->cleanup_in_progress_application_deployments(); $this->cleanup_in_progress_application_deployments();
} }
echo "Running redis cleanup...\n";
$this->call('cleanup:redis'); $this->call('cleanup:redis');
echo "Running stucked resources cleanup...\n";
$this->call('cleanup:stucked-resources'); $this->call('cleanup:stucked-resources');
try { try {
echo "Pulling helper image...\n";
$this->pullHelperImage(); $this->pullHelperImage();
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Error pulling helper image: {$e->getMessage()}\n"; echo "Error pulling helper image: {$e->getMessage()}\n";
@@ -78,7 +69,6 @@ class Init extends Command
if (isCloud()) { if (isCloud()) {
try { try {
echo "Pulling templates from CDN (cloud mode)...\n";
$this->pullTemplatesFromCDN(); $this->pullTemplatesFromCDN();
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Could not pull templates from CDN: {$e->getMessage()}\n"; echo "Could not pull templates from CDN: {$e->getMessage()}\n";
@@ -87,19 +77,16 @@ class Init extends Command
if (! isCloud()) { if (! isCloud()) {
try { try {
echo "Pulling templates from CDN (self-hosted mode)...\n";
$this->pullTemplatesFromCDN(); $this->pullTemplatesFromCDN();
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Could not pull templates from CDN: {$e->getMessage()}\n"; echo "Could not pull templates from CDN: {$e->getMessage()}\n";
} }
try { try {
echo "Setting up localhost proxy config...\n";
$localhost = $this->servers->where('id', 0)->first(); $localhost = $this->servers->where('id', 0)->first();
$localhost->setupDynamicProxyConfiguration(); $localhost->setupDynamicProxyConfiguration();
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Could not setup dynamic configuration: {$e->getMessage()}\n"; echo "Could not setup dynamic configuration: {$e->getMessage()}\n";
} }
echo "Checking auto-update settings...\n";
$settings = instanceSettings(); $settings = instanceSettings();
if (! is_null(config('constants.coolify.autoupdate', null))) { if (! is_null(config('constants.coolify.autoupdate', null))) {
if (config('constants.coolify.autoupdate') == true) { if (config('constants.coolify.autoupdate') == true) {
@@ -111,21 +98,17 @@ class Init extends Command
} }
} }
} }
echo "handle() complete\n";
} }
private function pullHelperImage() private function pullHelperImage()
{ {
echo "Dispatching CheckHelperImageJob\n";
CheckHelperImageJob::dispatch(); CheckHelperImageJob::dispatch();
} }
private function pullTemplatesFromCDN() private function pullTemplatesFromCDN()
{ {
echo 'Pulling templates from '.config('constants.services.official')."\n";
$response = Http::retry(3, 1000)->get(config('constants.services.official')); $response = Http::retry(3, 1000)->get(config('constants.services.official'));
if ($response->successful()) { if ($response->successful()) {
echo "Successfully pulled templates\n";
$services = $response->json(); $services = $response->json();
File::put(base_path('templates/service-templates.json'), json_encode($services)); File::put(base_path('templates/service-templates.json'), json_encode($services));
} }
@@ -133,18 +116,15 @@ class Init extends Command
private function optimize() private function optimize()
{ {
echo "Running optimize:clear\n";
Artisan::call('optimize:clear'); Artisan::call('optimize:clear');
echo "Running optimize\n";
Artisan::call('optimize'); Artisan::call('optimize');
} }
private function update_user_emails() private function update_user_emails()
{ {
echo "Starting user email updates...\n";
try { try {
User::whereRaw('email ~ \'[A-Z]\'')->get()->each(function (User $user) { User::whereRaw('email ~ \'[A-Z]\'')->get()->each(function (User $user) {
echo "Converting email to lowercase: {$user->email}\n"; $user->update(['email' => strtolower($user->email)]);
$user->update(['email' => strtolower($user->email)]); $user->update(['email' => strtolower($user->email)]);
}); });
} catch (\Throwable $e) { } catch (\Throwable $e) {
@@ -154,10 +134,8 @@ class Init extends Command
private function update_traefik_labels() private function update_traefik_labels()
{ {
echo "Updating traefik labels...\n";
try { try {
Server::where('proxy->type', 'TRAEFIK_V2')->update(['proxy->type' => 'TRAEFIK']); Server::where('proxy->type', 'TRAEFIK_V2')->update(['proxy->type' => 'TRAEFIK']);
echo "Traefik labels updated successfully\n";
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Error in updating traefik labels: {$e->getMessage()}\n"; echo "Error in updating traefik labels: {$e->getMessage()}\n";
} }
@@ -165,21 +143,15 @@ class Init extends Command
private function cleanup_unnecessary_dynamic_proxy_configuration() private function cleanup_unnecessary_dynamic_proxy_configuration()
{ {
echo "Starting cleanup of unnecessary proxy configs...\n";
foreach ($this->servers as $server) { foreach ($this->servers as $server) {
try { try {
if (! $server->isFunctional()) { if (! $server->isFunctional()) {
echo "Server {$server->id} not functional, skipping\n";
continue; continue;
} }
if ($server->id === 0) { if ($server->id === 0) {
echo "Skipping localhost server\n";
continue; continue;
} }
$file = $server->proxyPath().'/dynamic/coolify.yaml'; $file = $server->proxyPath().'/dynamic/coolify.yaml';
echo "Removing file: $file\n";
return instant_remote_process([ return instant_remote_process([
"rm -f $file", "rm -f $file",
@@ -192,28 +164,20 @@ class Init extends Command
private function cleanup_unused_network_from_coolify_proxy() private function cleanup_unused_network_from_coolify_proxy()
{ {
echo "Starting cleanup of unused networks...\n";
foreach ($this->servers as $server) { foreach ($this->servers as $server) {
if (! $server->isFunctional()) { if (! $server->isFunctional()) {
echo "Server {$server->id} not functional, skipping\n";
continue; continue;
} }
if (! $server->isProxyShouldRun()) { if (! $server->isProxyShouldRun()) {
echo "Proxy should not run on server {$server->id}, skipping\n";
continue; continue;
} }
try { try {
echo "Collecting docker networks for server {$server->id}\n";
['networks' => $networks, 'allNetworks' => $allNetworks] = collectDockerNetworksByServer($server); ['networks' => $networks, 'allNetworks' => $allNetworks] = collectDockerNetworksByServer($server);
$removeNetworks = $allNetworks->diff($networks); $removeNetworks = $allNetworks->diff($networks);
$commands = collect(); $commands = collect();
foreach ($removeNetworks as $network) { foreach ($removeNetworks as $network) {
echo "Checking network: $network\n";
$out = instant_remote_process(["docker network inspect -f json $network | jq '.[].Containers | if . == {} then null else . end'"], $server, false); $out = instant_remote_process(["docker network inspect -f json $network | jq '.[].Containers | if . == {} then null else . end'"], $server, false);
if (empty($out)) { if (empty($out)) {
echo "Network $network is empty, marking for removal\n";
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true"); $commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
$commands->push("docker network rm $network >/dev/null 2>&1 || true"); $commands->push("docker network rm $network >/dev/null 2>&1 || true");
} else { } else {
@@ -222,7 +186,6 @@ class Init extends Command
// If only coolify-proxy itself is connected to that network (it should not be possible, but who knows) // If only coolify-proxy itself is connected to that network (it should not be possible, but who knows)
$isCoolifyProxyItself = data_get($data->first(), 'Name') === 'coolify-proxy'; $isCoolifyProxyItself = data_get($data->first(), 'Name') === 'coolify-proxy';
if ($isCoolifyProxyItself) { if ($isCoolifyProxyItself) {
echo "Network $network only has coolify-proxy, marking for removal\n";
$commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true"); $commands->push("docker network disconnect $network coolify-proxy >/dev/null 2>&1 || true");
$commands->push("docker network rm $network >/dev/null 2>&1 || true"); $commands->push("docker network rm $network >/dev/null 2>&1 || true");
} }
@@ -230,7 +193,6 @@ class Init extends Command
} }
} }
if ($commands->isNotEmpty()) { if ($commands->isNotEmpty()) {
echo "Executing network cleanup commands\n";
remote_process(command: $commands, type: ActivityTypes::INLINE->value, server: $server, ignore_errors: false); remote_process(command: $commands, type: ActivityTypes::INLINE->value, server: $server, ignore_errors: false);
} }
} catch (\Throwable $e) { } catch (\Throwable $e) {
@@ -241,16 +203,13 @@ class Init extends Command
private function restore_coolify_db_backup() private function restore_coolify_db_backup()
{ {
echo "Checking if DB backup restore is needed...\n";
if (version_compare('4.0.0-beta.179', config('constants.coolify.version'), '<=')) { if (version_compare('4.0.0-beta.179', config('constants.coolify.version'), '<=')) {
try { try {
$database = StandalonePostgresql::withTrashed()->find(0); $database = StandalonePostgresql::withTrashed()->find(0);
if ($database && $database->trashed()) { if ($database && $database->trashed()) {
echo "Restoring coolify db backup\n";
$database->restore(); $database->restore();
$scheduledBackup = ScheduledDatabaseBackup::find(0); $scheduledBackup = ScheduledDatabaseBackup::find(0);
if (! $scheduledBackup) { if (! $scheduledBackup) {
echo "Creating scheduled backup\n";
ScheduledDatabaseBackup::create([ ScheduledDatabaseBackup::create([
'id' => 0, 'id' => 0,
'enabled' => true, 'enabled' => true,
@@ -281,7 +240,6 @@ class Init extends Command
return; return;
} }
try { try {
echo "Sending request to undead.coolify.io\n";
Http::get("https://undead.coolify.io/v4/alive?appId=$id&version=$version"); Http::get("https://undead.coolify.io/v4/alive?appId=$id&version=$version");
} catch (\Throwable $e) { } catch (\Throwable $e) {
echo "Error in sending live signal: {$e->getMessage()}\n"; echo "Error in sending live signal: {$e->getMessage()}\n";
@@ -290,15 +248,11 @@ class Init extends Command
private function cleanup_in_progress_application_deployments() private function cleanup_in_progress_application_deployments()
{ {
echo "Starting cleanup of in-progress deployments...\n";
// Cleanup any failed deployments // Cleanup any failed deployments
try { try {
if (isCloud()) { if (isCloud()) {
echo "Skipping cleanup in cloud mode\n";
return; return;
} }
echo "Finding queued/in-progress deployments...\n";
$queued_inprogress_deployments = ApplicationDeploymentQueue::whereIn('status', [ApplicationDeploymentStatus::IN_PROGRESS->value, ApplicationDeploymentStatus::QUEUED->value])->get(); $queued_inprogress_deployments = ApplicationDeploymentQueue::whereIn('status', [ApplicationDeploymentStatus::IN_PROGRESS->value, ApplicationDeploymentStatus::QUEUED->value])->get();
foreach ($queued_inprogress_deployments as $deployment) { foreach ($queued_inprogress_deployments as $deployment) {
echo "Marking deployment {$deployment->id} as failed\n"; echo "Marking deployment {$deployment->id} as failed\n";
@@ -312,12 +266,10 @@ class Init extends Command
private function replace_slash_in_environment_name() private function replace_slash_in_environment_name()
{ {
echo "Checking for slashes in environment names...\n";
if (version_compare('4.0.0-beta.298', config('constants.coolify.version'), '<=')) { if (version_compare('4.0.0-beta.298', config('constants.coolify.version'), '<=')) {
$environments = Environment::all(); $environments = Environment::all();
foreach ($environments as $environment) { foreach ($environments as $environment) {
if (str_contains($environment->name, '/')) { if (str_contains($environment->name, '/')) {
echo "Replacing slashes in environment: {$environment->name}\n";
$environment->name = str_replace('/', '-', $environment->name); $environment->name = str_replace('/', '-', $environment->name);
$environment->save(); $environment->save();
} }