server = Server::where('name', $server_name)->first(); } else { $this->server = $server; } $instance_settings = InstanceSettings::get(); $this->latest_version = get_latest_version_of_coolify(); $this->current_version = config('version'); if (!$this->force) { if (!$instance_settings->is_auto_update_enabled) { return $this->delete(); } try { $this->check_if_update_available(); } catch (\Exception $e) { Log::error($e->getMessage()); return $this->delete(); } } } private function check_if_update_available() { if ($this->latest_version === $this->current_version) { throw new \Exception("Already on latest version"); } if (version_compare($this->latest_version, $this->current_version, '<')) { throw new \Exception("Already on latest version"); } } public function handle(): void { try { if (config('app.env') === 'local') { instant_remote_process([ "sleep 2" ], $this->server); remote_process([ "sleep 10" ], $this->server); } else { instant_remote_process([ "curl -fsSL https://coolify-cdn.b-cdn.net/files/upgrade.sh -o /data/coolify/source/upgrade.sh", ], $this->server); remote_process([ "bash /data/coolify/source/upgrade.sh $this->latest_version" ], $this->server); } } catch (\Exception $e) { Log::error($e->getMessage()); } } }