diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index eda379d82..f7c0778af 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -10,21 +10,18 @@ use Illuminate\Foundation\Console\Kernel as ConsoleKernel; class Kernel extends ConsoleKernel { - /** - * Define the application's command schedule. - */ protected function schedule(Schedule $schedule): void { - $schedule->command('horizon:snapshot')->everyFiveMinutes(); - - $schedule->job(new InstanceDockerCleanupJob)->everyFiveMinutes(); - $schedule->job(new InstanceAutoUpdateJob)->everyFifteenMinutes(); - // $schedule->job(new InstanceProxyCheckJob)->everyMinute(); + if (config('app.env') === 'local') { + $schedule->command('horizon:snapshot')->everyMinute(); + $schedule->job(new InstanceDockerCleanupJob)->everyMinute(); + $schedule->job(new InstanceAutoUpdateJob(true))->everyMinute(); + } else { + $schedule->command('horizon:snapshot')->everyFiveMinutes(); + $schedule->job(new InstanceDockerCleanupJob)->everyFiveMinutes(); + $schedule->job(new InstanceAutoUpdateJob)->everyFifteenMinutes(); + } } - - /** - * Register the commands for the application. - */ protected function commands(): void { $this->load(__DIR__ . '/Commands'); diff --git a/app/Jobs/InstanceAutoUpdateJob.php b/app/Jobs/InstanceAutoUpdateJob.php index c97b370b4..4a34f457b 100644 --- a/app/Jobs/InstanceAutoUpdateJob.php +++ b/app/Jobs/InstanceAutoUpdateJob.php @@ -18,6 +18,11 @@ class InstanceAutoUpdateJob implements ShouldQueue, ShouldBeUnique public $tries = 1; public $timeout = 120; + + public Server $server; + public string $latest_version; + public string $current_version; + public function uniqueId(): int { return 1; @@ -25,47 +30,56 @@ class InstanceAutoUpdateJob implements ShouldQueue, ShouldBeUnique public function __construct(private bool $force = false) { } - + private function update() + { + if (config('app.env') === 'local') { + ray('Running update on local docker container'); + instant_remote_process([ + "sleep 10" + ], $this->server); + ray('Update done'); + return; + } else { + ray('Running update on production server'); + instant_remote_process([ + "curl -fsSL https://coolify-cdn.b-cdn.net/files/upgrade.sh -o /data/coolify/source/upgrade.sh", + "bash /data/coolify/source/upgrade.sh $this->latest_version" + ], $this->server); + return; + } + } public function handle(): void { try { + ray('Running InstanceAutoUpdateJob'); $localhost_name = 'localhost'; if (config('app.env') === 'local') { $localhost_name = 'testing-local-docker-container'; } - $server = Server::where('name', $localhost_name)->firstOrFail(); - $latest_version = get_latest_version_of_coolify(); - $current_version = config('version'); - - if (config('app.env') === 'local') { - instant_remote_process([ - "sleep 10" - ], $server); - return; + $this->server = Server::where('name', $localhost_name)->firstOrFail(); + $this->latest_version = get_latest_version_of_coolify(); + $this->current_version = config('version'); + ray('latest version:' . $this->latest_version . " current version: " . $this->current_version . ' force: ' . $this->force); + if ($this->force) { + $this->update(); } else { - if (!$this->force) { - $instance_settings = InstanceSettings::get(); - if (!$instance_settings->is_auto_update_enabled) { - $this->fail('Auto update is disabled'); - return; - } - if ($latest_version === $current_version) { - $this->fail("Already on latest version"); - return; - } - if (version_compare($latest_version, $current_version, '<')) { - $this->fail("Latest version is lower than current version?!"); - return; - } + $instance_settings = InstanceSettings::get(); + ray($instance_settings); + if (!$instance_settings->is_auto_update_enabled) { + throw new \Exception('Auto update is disabled'); } - instant_remote_process([ - "curl -fsSL https://coolify-cdn.b-cdn.net/files/upgrade.sh -o /data/coolify/source/upgrade.sh", - "bash /data/coolify/source/upgrade.sh $latest_version" - ], $server); - return; + 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('Latest version is lower than current version?!'); + } + $this->update(); } + return; } catch (\Exception $e) { - Log::error($e->getMessage()); + ray('InstanceAutoUpdateJob failed'); + ray($e->getMessage()); $this->fail($e->getMessage()); return; } diff --git a/resources/css/app.css b/resources/css/app.css index df2a15c2a..088291967 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -47,9 +47,6 @@ select { @apply w-4 text-warning; } -button[type="submit"] { - @apply hover:bg-coolgray-400 btn h-7 btn-xs border-none bg-coolgray-200 no-animation normal-case text-white rounded; -} button[isWarning] { @apply bg-error hover:bg-error; } diff --git a/resources/views/components/forms/button.blade.php b/resources/views/components/forms/button.blade.php index 6147da68d..efa7d9644 100644 --- a/resources/views/components/forms/button.blade.php +++ b/resources/views/components/forms/button.blade.php @@ -9,7 +9,9 @@