mirror of
https://github.com/cupcakearmy/coolify.git
synced 2024-10-22 08:04:19 +02:00
rename to docker cleanup and and feedback implementation
This commit is contained in:
parent
5d32bd250b
commit
012c23586d
@ -29,8 +29,6 @@ protected function schedule(Schedule $schedule): void
|
||||
{
|
||||
$this->all_servers = Server::all();
|
||||
$settings = InstanceSettings::get();
|
||||
$mainServer = Server::find(0);
|
||||
$serverSettings = $mainServer->settings;
|
||||
|
||||
if (isDev()) {
|
||||
// Instance Jobs
|
||||
@ -44,10 +42,10 @@ protected function schedule(Schedule $schedule): void
|
||||
} else {
|
||||
// Instance Jobs
|
||||
$schedule->command('horizon:snapshot')->everyFiveMinutes();
|
||||
$schedule->command('cleanup:unreachable-servers')->cron($serverSettings->server_cleanup_frequency)->onOneServer();
|
||||
$schedule->command('cleanup:unreachable-servers')->daily()->onOneServer();
|
||||
$schedule->job(new PullCoolifyImageJob)->cron($settings->update_check_frequency)->onOneServer();
|
||||
$schedule->job(new PullTemplatesFromCDN)->cron($settings->update_check_frequency)->onOneServer();
|
||||
$schedule->job(new CleanupInstanceStuffsJob)->cron($serverSettings->server_cleanup_frequency)->onOneServer();
|
||||
$schedule->job(new CleanupInstanceStuffsJob)->everyTwoMinutes()->onOneServer();
|
||||
$this->schedule_updates($schedule);
|
||||
|
||||
// Server Jobs
|
||||
@ -57,7 +55,7 @@ protected function schedule(Schedule $schedule): void
|
||||
$this->check_scheduled_tasks($schedule);
|
||||
|
||||
$schedule->command('cleanup:database --yes')->daily();
|
||||
$schedule->command('uploads:clear')->cron($serverSettings->server_cleanup_frequency)->onOneServer();
|
||||
$schedule->command('uploads:clear')->everyTwoMinutes();
|
||||
}
|
||||
}
|
||||
|
||||
@ -95,9 +93,6 @@ private function schedule_updates($schedule)
|
||||
|
||||
private function check_resources($schedule)
|
||||
{
|
||||
$mainServer = Server::find(0);
|
||||
$serverSettings = $mainServer->settings;
|
||||
|
||||
if (isCloud()) {
|
||||
$servers = $this->all_servers->whereNotNull('team.subscription')->where('team.subscription.stripe_trial_already_ended', false)->where('ip', '!=', '1.2.3.4');
|
||||
$own = Team::find(0)->servers;
|
||||
@ -107,7 +102,11 @@ private function check_resources($schedule)
|
||||
}
|
||||
foreach ($servers as $server) {
|
||||
$schedule->job(new ServerCheckJob($server))->everyMinute()->onOneServer();
|
||||
$schedule->job(new DockerCleanupJob($server))->cron($serverSettings->server_cleanup_frequency)->onOneServer();
|
||||
//The lines below need to be added as soon as timzone is merged!!
|
||||
//$serverTimezone = $server->settings->server_timezone;
|
||||
//$schedule->job(new DockerCleanupJob($server))->cron($server->settings->docker_cleanup_frequency)->timezone($serverTimezone)->onOneServer();
|
||||
$schedule->job(new DockerCleanupJob($server))->cron($server->settings->docker_cleanup_frequency)->onOneServer();
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,7 +29,7 @@ public function handle(): void
|
||||
if (! $this->server->isFunctional()) {
|
||||
return;
|
||||
}
|
||||
if ($this->server->settings->is_force_cleanup_enabled) {
|
||||
if ($this->server->settings->force_docker_cleanup) {
|
||||
Log::info('DockerCleanupJob force cleanup on ' . $this->server->name);
|
||||
CleanupDocker::run(server: $this->server, force: true);
|
||||
|
||||
@ -60,4 +60,4 @@ public function handle(): void
|
||||
throw $e;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -45,9 +45,9 @@ class Form extends Component
|
||||
'server.settings.metrics_history_days' => 'required|integer|min:1',
|
||||
'wildcard_domain' => 'nullable|url',
|
||||
'server.settings.is_server_api_enabled' => 'required|boolean',
|
||||
'server.settings.force_server_cleanup' => 'required|boolean',
|
||||
'server.settings.server_cleanup_frequency' => 'required_if:server.settings.force_server_cleanup,true|string',
|
||||
'server.settings.server_cleanup_threshold' => 'required_if:server.settings.force_server_cleanup,false|integer|min:1|max:100',
|
||||
'server.settings.force_docker_cleanup' => 'required|boolean',
|
||||
'server.settings.docker_cleanup_frequency' => 'required_if:server.settings.force_docker_cleanup,true|string',
|
||||
'server.settings.docker_cleanup_threshold' => 'required_if:server.settings.force_docker_cleanup,false|integer|min:1|max:100',
|
||||
];
|
||||
|
||||
protected $validationAttributes = [
|
||||
@ -73,17 +73,17 @@ class Form extends Component
|
||||
public function mount()
|
||||
{
|
||||
$this->wildcard_domain = $this->server->settings->wildcard_domain;
|
||||
$this->server->settings->server_cleanup_threshold = $this->server->settings->server_cleanup_threshold;
|
||||
$this->server->settings->server_cleanup_frequency = $this->server->settings->server_cleanup_frequency;
|
||||
$this->server->settings->docker_cleanup_threshold = $this->server->settings->docker_cleanup_threshold;
|
||||
$this->server->settings->docker_cleanup_frequency = $this->server->settings->docker_cleanup_frequency;
|
||||
}
|
||||
|
||||
public function updated($field)
|
||||
{
|
||||
if ($field === 'server.settings.server_cleanup_frequency') {
|
||||
$frequency = $this->server->settings->server_cleanup_frequency;
|
||||
if ($field === 'server.settings.docker_cleanup_frequency') {
|
||||
$frequency = $this->server->settings->docker_cleanup_frequency;
|
||||
if (empty($frequency) || !validate_cron_expression($frequency)) {
|
||||
$this->dispatch('error', 'Invalid Cron / Human expression for Server Cleanup Frequency. Resetting to default 10 minutes.');
|
||||
$this->server->settings->server_cleanup_frequency = '*/10 * * * *';
|
||||
$this->dispatch('error', 'Invalid Cron / Human expression for Docker Cleanup Frequency. Resetting to default 10 minutes.');
|
||||
$this->server->settings->docker_cleanup_frequency = '*/10 * * * *';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -37,8 +37,8 @@
|
||||
'metrics_history_days' => ['type' => 'integer'],
|
||||
'metrics_refresh_rate_seconds' => ['type' => 'integer'],
|
||||
'metrics_token' => ['type' => 'string'],
|
||||
'server_cleanup_frequency' => ['type' => 'string'],
|
||||
'server_cleanup_threshold' => ['type' => 'integer'],
|
||||
'docker_cleanup_frequency' => ['type' => 'string'],
|
||||
'docker_cleanup_threshold' => ['type' => 'integer'],
|
||||
'server_id' => ['type' => 'integer'],
|
||||
'wildcard_domain' => ['type' => 'string'],
|
||||
'created_at' => ['type' => 'string'],
|
||||
@ -50,8 +50,8 @@ class ServerSetting extends Model
|
||||
protected $guarded = [];
|
||||
|
||||
protected $casts = [
|
||||
'force_server_cleanup' => 'boolean',
|
||||
'server_cleanup_threshold' => 'integer',
|
||||
'force_docker_cleanup' => 'boolean',
|
||||
'docker_cleanup_threshold' => 'integer',
|
||||
];
|
||||
|
||||
public function server()
|
||||
|
@ -14,9 +14,9 @@ class AddServerCleanupFieldsToServerSettingsTable extends Migration
|
||||
public function up()
|
||||
{
|
||||
Schema::table('server_settings', function (Blueprint $table) {
|
||||
$table->boolean('force_server_cleanup')->default(false);
|
||||
$table->string('server_cleanup_frequency')->default('*/10 * * * *');
|
||||
$table->integer('server_cleanup_threshold')->default(80);
|
||||
$table->boolean('force_docker_cleanup')->default(false);
|
||||
$table->string('docker_cleanup_frequency')->default('*/10 * * * *');
|
||||
$table->integer('docker_cleanup_threshold')->default(80);
|
||||
|
||||
|
||||
// Remove old columns
|
||||
@ -33,9 +33,9 @@ public function up()
|
||||
public function down()
|
||||
{
|
||||
Schema::table('server_settings', function (Blueprint $table) {
|
||||
$table->dropColumn('force_server_cleanup');
|
||||
$table->dropColumn('server_cleanup_frequency');
|
||||
$table->dropColumn('server_cleanup_threshold');
|
||||
$table->dropColumn('force_docker_cleanup');
|
||||
$table->dropColumn('docker_cleanup_frequency');
|
||||
$table->dropColumn('docker_cleanup_threshold');
|
||||
|
||||
|
||||
// Add back old columns
|
||||
|
@ -126,12 +126,11 @@
|
||||
<div class="flex flex-col gap-2">
|
||||
<div class="flex flex-col flex-wrap gap-2 sm:flex-nowrap">
|
||||
<div class="w-64">
|
||||
<x-forms.checkbox helper="Enable force Server Cleanup. This will cleanup build caches / unused images / other docker things, unreachebale servers and uploads" instantSave id="server.settings.force_server_cleanup" label="Force Server Cleanup" />
|
||||
</div>
|
||||
@if ($server->settings->force_server_cleanup)
|
||||
<x-forms.input placeholder="*/10 * * * *" id="server.settings.server_cleanup_frequency" label="Server Cleanup Frequency" required helper="Cron expression for Server Cleanup.<br>You can use every_minute, hourly, daily, weekly, monthly, yearly.<br><br>Default is every 10 minutes." />
|
||||
<x-forms.checkbox helper="Enable force Docker Cleanup. This will cleanup build caches / unused images / etc." instantSave id="server.settings.force_docker_cleanup" label="Force Docker Cleanup" /> </div>
|
||||
@if ($server->settings->force_docker_cleanup)
|
||||
<x-forms.input placeholder="*/10 * * * *" id="server.settings.docker_cleanup_frequency" label="Docker Cleanup Frequency" required helper="Cron expression for Docker Cleanup.<br>You can use every_minute, hourly, daily, weekly, monthly, yearly.<br><br>Default is every 10 minutes." />
|
||||
@else
|
||||
<x-forms.input id="server.settings.server_cleanup_threshold" label="Server cleanup threshold (%)" required helper="The Server cleanup tasks will run when the disk usage exceeds this threshold." />
|
||||
<x-forms.input id="server.settings.docker_cleanup_threshold" label="Docker cleanup threshold (%)" required helper="The Docker cleanup tasks will run when the disk usage exceeds this threshold." />
|
||||
@endif
|
||||
</div>
|
||||
<div class="flex flex-wrap gap-2 sm:flex-nowrap">
|
||||
|
Loading…
Reference in New Issue
Block a user