server->uuid))]; } public function uniqueId(): int { return $this->server->uuid; } public function handle() { if (!$this->server->isServerReady($this->tries)) { throw new \RuntimeException('Server is not ready.'); }; try { if ($this->server->isFunctional()) { $this->cleanup(notify: false); $this->removeCoolifyYaml(); // $this->server->checkSentinel(); } } catch (\Throwable $e) { send_internal_notification('ServerStatusJob failed with: ' . $e->getMessage()); ray($e->getMessage()); return handleError($e); } } private function removeCoolifyYaml() { // This will remote the coolify.yaml file from the server as it is not needed on cloud servers if (isCloud() && $this->server->id !== 0) { $file = $this->server->proxyPath() . "/dynamic/coolify.yaml"; return instant_remote_process([ "rm -f $file", ], $this->server, false); } } public function cleanup(bool $notify = false): void { $this->disk_usage = $this->server->getDiskUsage(); if ($this->disk_usage >= $this->server->settings->cleanup_after_percentage) { if ($notify) { if ($this->server->high_disk_usage_notification_sent) { ray('high disk usage notification already sent'); return; } else { $this->server->high_disk_usage_notification_sent = true; $this->server->save(); $this->server->team?->notify(new HighDiskUsage($this->server, $this->disk_usage, $this->server->settings->cleanup_after_percentage)); } } else { DockerCleanupJob::dispatchSync($this->server); $this->cleanup(notify: true); } } else { $this->server->high_disk_usage_notification_sent = false; $this->server->save(); } } }