diff --git a/app/Jobs/SpeedtestJob.php b/app/Jobs/SpeedtestJob.php index bbf43f8e..749aa20b 100644 --- a/app/Jobs/SpeedtestJob.php +++ b/app/Jobs/SpeedtestJob.php @@ -52,19 +52,19 @@ class SpeedtestJob implements ShouldQueue */ public function handle() { - if($this->config['healthchecks_enabled'] === true) { + if ($this->config['healthchecks_enabled'] === true) { $this->healthcheck('start'); } $output = SpeedtestHelper::output(); $speedtest = SpeedtestHelper::runSpeedtest($output, $this->scheduled); - if($speedtest == false) { - if($this->config['healthchecks_enabled'] === true) { + if ($speedtest == false) { + if ($this->config['healthchecks_enabled'] === true) { $this->healthcheck('fail'); } event(new SpeedtestFailedEvent()); } else { - if($this->config['healthchecks_enabled'] === true) { + if ($this->config['healthchecks_enabled'] === true) { $this->healthcheck('success'); } @@ -82,19 +82,19 @@ class SpeedtestJob implements ShouldQueue private function healthcheck(String $method) { try { - $hc = new Healthchecks(SettingsHelper::get('healthchecks_uuid')->value); - if($method === 'start') { + $hc = new Healthchecks(SettingsHelper::get('healthchecks_uuid')->value, SettingsHelper::get('healthchecks_server_url')->value); + if ($method === 'start') { $hc->start(); } - if($method === 'success') { + if ($method === 'success') { $hc->success(); } - if($method === 'fail') { + if ($method === 'fail') { $hc->fail(); } - } catch(Exception $e) { + } catch (Exception $e) { Log::error($e->getMessage()); } } diff --git a/app/Providers/IntegrationsServiceProvider.php b/app/Providers/IntegrationsServiceProvider.php index 94a91825..7c66f1b9 100644 --- a/app/Providers/IntegrationsServiceProvider.php +++ b/app/Providers/IntegrationsServiceProvider.php @@ -44,7 +44,7 @@ class IntegrationsServiceProvider extends ServiceProvider SettingsHelper::loadIntegrationConfig(); App::bind('healthcheck', function () use ($setting) { - return new Healthchecks($setting->value); + return new Healthchecks($setting->value, SettingsHelper::get('healthchecks_server_url')->value); }); } catch (InvalidUuidStringException $e) { Log::error('Invalid healthchecks UUID'); diff --git a/database/migrations/2020_12_20_001345_add_custom_healthchecks_setting.php b/database/migrations/2020_12_20_001345_add_custom_healthchecks_setting.php new file mode 100644 index 00000000..bd552992 --- /dev/null +++ b/database/migrations/2020_12_20_001345_add_custom_healthchecks_setting.php @@ -0,0 +1,38 @@ + 'healthchecks_server_url', + 'value' => 'https://hc-ping.com/', + 'description' => 'The URL of the healthchecks.io server. Change this to use a self-hosted server.' + ]); + } + } + + /** + * Reverse the migrations. + * + * @return void + */ + public function down() + { + Setting::whereIn('name', [ + 'healthchecks_server_url', + ])->delete(); + } +} diff --git a/public/js/app.js b/public/js/app.js index ebf92729..f37c5e88 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -140866,6 +140866,9 @@ var SettingsIndex = /*#__PURE__*/function (_Component) { General: [{ obj: data.app_name, type: 'text' + }, { + obj: data.schedule_enabled, + type: 'text' }, { obj: data.schedule, type: 'text' @@ -140979,6 +140982,9 @@ var SettingsIndex = /*#__PURE__*/function (_Component) { healthchecks: [{ obj: data.healthchecks_enabled, type: 'checkbox' + }, { + obj: data.healthchecks_server_url, + type: 'text' }, { obj: data.healthchecks_uuid, type: 'text' diff --git a/resources/js/components/Settings/SettingsIndex.js b/resources/js/components/Settings/SettingsIndex.js index 10ad07f8..cf064aad 100644 --- a/resources/js/components/Settings/SettingsIndex.js +++ b/resources/js/components/Settings/SettingsIndex.js @@ -38,6 +38,10 @@ export default class SettingsIndex extends Component { obj: data.app_name, type: 'text', }, + { + obj: data.schedule_enabled, + type: 'text', + }, { obj: data.schedule, type: 'text', @@ -188,6 +192,10 @@ export default class SettingsIndex extends Component { obj: data.healthchecks_enabled, type: 'checkbox' }, + { + obj: data.healthchecks_server_url, + type: 'text' + }, { obj: data.healthchecks_uuid, type: 'text'