diff --git a/app/Console/Kernel.php b/app/Console/Kernel.php index 41d821e8a..92a1b1618 100644 --- a/app/Console/Kernel.php +++ b/app/Console/Kernel.php @@ -45,14 +45,9 @@ class Kernel extends ConsoleKernel $schedule->command('cleanup:unreachable-servers')->daily(); $schedule->job(new PullTemplatesFromCDN)->daily()->onOneServer(); $schedule->job(new CleanupInstanceStuffsJob)->everyFiveMinutes()->onOneServer(); - - if ($settings->update_check_frequency && $this->isValidCronExpression($settings->update_check_frequency)) { - $schedule->job(new PullCoolifyImageJob)->cron($settings->update_check_frequency)->onOneServer(); - } else { - // Default to every 12 hours if not set or invalid - $schedule->job(new PullCoolifyImageJob)->twiceDaily()->onOneServer(); - } - + $schedule->job(new PullCoolifyImageJob)->cron($settings->update_check_frequency ?? '0 0 * * *')->onOneServer(); + $schedule->job(new CheckForUpdatesJob())->cron($settings->auto_update_frequency ?? '0 11,23 * * *')->onOneServer(); + // Server Jobs $this->scheduleUpdates($schedule); $this->pull_images($schedule); @@ -81,32 +76,12 @@ class Kernel extends ConsoleKernel { $settings = InstanceSettings::get(); - // Schedule update check - if ($settings->update_check_frequency && $this->isValidCronExpression($settings->update_check_frequency)) { - $schedule->job(new CheckForUpdatesJob())->cron($settings->update_check_frequency)->onOneServer(); - } else { - // Default to every 12 hours if not set or invalid - $schedule->job(new CheckForUpdatesJob())->twiceDaily()->onOneServer(); - } + $updateCheckFrequency = $settings->update_check_frequency ?? '0 0 * * *'; // Default to daily at 00:00 + $schedule->job(new CheckForUpdatesJob())->cron($updateCheckFrequency)->onOneServer(); - // Schedule auto-update if ($settings->is_auto_update_enabled) { - if ($settings->auto_update_frequency && $this->isValidCronExpression($settings->auto_update_frequency)) { - $schedule->job(new UpdateCoolifyJob())->cron($settings->auto_update_frequency)->onOneServer(); - } else { - // Default to every 24 hours if not set or invalid - $schedule->job(new UpdateCoolifyJob())->daily()->onOneServer(); - } - } - } - - private function isValidCronExpression($expression) - { - try { - new \Cron\CronExpression($expression); - return true; - } catch (\Exception $e) { - return false; + $autoUpdateFrequency = $settings->auto_update_frequency ?? '0 11,23 * * *'; // Default to twice daily at 11:00 and 23:00 + $schedule->job(new UpdateCoolifyJob())->cron($autoUpdateFrequency)->onOneServer(); } } diff --git a/app/Livewire/Settings/Configuration.php b/app/Livewire/Settings/Configuration.php index 0d0b110b6..2f4c77535 100644 --- a/app/Livewire/Settings/Configuration.php +++ b/app/Livewire/Settings/Configuration.php @@ -21,9 +21,9 @@ class Configuration extends Component public bool $is_api_enabled; - public ?string $auto_update_frequency; + public string $auto_update_frequency; - public ?string $update_check_frequency; + public string $update_check_frequency; protected string $dynamic_config_path = '/data/coolify/proxy/dynamic'; @@ -39,7 +39,7 @@ class Configuration extends Component 'settings.allowed_ips' => 'nullable', 'settings.is_auto_update_enabled' => 'boolean', 'auto_update_frequency' => 'nullable|string', - 'update_check_frequency' => 'required|string', + 'update_check_frequency' => 'nullable|string', ]; protected $validationAttributes = [ @@ -91,6 +91,7 @@ class Configuration extends Component } $this->validate(); + // Allow empty values and set defaults if ($this->is_auto_update_enabled && !$this->validateCronExpression($this->auto_update_frequency)) { $this->dispatch('error', 'Invalid Cron / Human expression for Auto Update Frequency.'); return; @@ -131,7 +132,6 @@ class Configuration extends Component $this->settings->is_api_enabled = $this->is_api_enabled; $this->settings->auto_update_frequency = $this->auto_update_frequency; $this->settings->update_check_frequency = $this->update_check_frequency; - $this->settings->save(); $this->server->setupDynamicProxyConfiguration(); if (! $error_show) { @@ -145,7 +145,7 @@ class Configuration extends Component private function validateCronExpression($expression): bool { if (empty($expression)) { - return false; + return true; } $isValid = false; try { @@ -165,14 +165,14 @@ class Configuration extends Component public function updatedAutoUpdateFrequency() { if (!$this->validateCronExpression($this->auto_update_frequency)) { - $this->dispatch('error', 'Invalid Cron / Human expression.'); + $this->dispatch('error', 'Invalid Cron / Human expression for Auto Update Frequency.'); } } public function updatedUpdateCheckFrequency() { if (!$this->validateCronExpression($this->update_check_frequency)) { - $this->dispatch('error', 'Invalid Cron / Human expression.'); + $this->dispatch('error', 'Invalid Cron / Human expression for Update Check Frequency.'); } } } \ No newline at end of file diff --git a/database/migrations/2024_08_05_142659_add_new_version_available_to_instance_settings_table.php b/database/migrations/2024_08_05_142659_add_new_version_available_to_instance_settings_table.php index 25c5666b8..85dafc4b7 100644 --- a/database/migrations/2024_08_05_142659_add_new_version_available_to_instance_settings_table.php +++ b/database/migrations/2024_08_05_142659_add_new_version_available_to_instance_settings_table.php @@ -12,8 +12,8 @@ return new class extends Migration public function up(): void { Schema::table('instance_settings', function (Blueprint $table) { - $table->string('update_check_frequency')->default('0 */12 * * *')->nullable(); $table->string('auto_update_frequency')->default('0 0 * * *')->nullable(); + $table->string('update_check_frequency')->default('0 */11 * * *')->nullable(); }); } diff --git a/resources/views/livewire/settings/configuration.blade.php b/resources/views/livewire/settings/configuration.blade.php index e9cb7267d..f92e9d79d 100644 --- a/resources/views/livewire/settings/configuration.blade.php +++ b/resources/views/livewire/settings/configuration.blade.php @@ -45,11 +45,9 @@ @else @if($is_auto_update_enabled) - - @error('settings.auto_update_frequency') {{ $message }} @enderror + @endif - - @error('settings.update_check_frequency') {{ $message }} @enderror + @endif