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