server->uuid))]; } public function uniqueId(): string { return $this->server->uuid; } public function __construct(public Server $server) { } public function handle(): void { try { $version = get_latest_sentinel_version(); if (!$version) { ray('Failed to get latest Sentinel version'); return; } $local_version = instant_remote_process(['docker exec coolify-sentinel sh -c "curl http://127.0.0.1:8888/api/version"'], $this->server, '0.0.0'); if ($version === $local_version) { ray('Sentinel image is up to date'); return; } ray('Pulling Sentinel image'); StartSentinel::run($this->server, $version, true); } catch (\Throwable $e) { send_internal_notification('PullSentinelImageJob failed with: ' . $e->getMessage()); ray($e->getMessage()); throw $e; } } }