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