Skip to content

Commit

Permalink
fix: generate sentinel url
Browse files Browse the repository at this point in the history
  • Loading branch information
andrasbacsai committed Oct 15, 2024
1 parent 73923a0 commit 46ec8ee
Show file tree
Hide file tree
Showing 7 changed files with 33 additions and 4 deletions.
2 changes: 2 additions & 0 deletions app/Livewire/Server/Form.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,7 @@ public function getListeners()
'server.settings.sentinel_metrics_history_days' => 'required|integer|min:1',
'server.settings.sentinel_push_interval_seconds' => 'required|integer|min:10',
'wildcard_domain' => 'nullable|url',
'server.settings.sentinel_custom_url' => 'nullable|url',
'server.settings.is_sentinel_enabled' => 'required|boolean',
'server.settings.server_timezone' => 'required|string|timezone',
'server.settings.force_docker_cleanup' => 'required|boolean',
Expand Down Expand Up @@ -88,6 +89,7 @@ public function getListeners()
'server.settings.sentinel_metrics_history_days' => 'Metrics History',
'server.settings.sentinel_push_interval_seconds' => 'Push Interval',
'server.settings.is_sentinel_enabled' => 'Server API',
'server.settings.sentinel_custom_url' => 'Sentinel URL',
'server.settings.server_timezone' => 'Server Timezone',
'server.settings.delete_unused_volumes' => 'Delete Unused Volumes',
'server.settings.delete_unused_networks' => 'Delete Unused Networks',
Expand Down
16 changes: 16 additions & 0 deletions app/Models/Server.php
Original file line number Diff line number Diff line change
Expand Up @@ -527,6 +527,22 @@ public function forceDisableServer()
Storage::disk('ssh-mux')->delete($this->muxFilename());
}

public function generateSentinelUrl() {
if ($this->isLocalhost()) {
return 'http://host.docker.internal:8888';
}
$settings = InstanceSettings::get();
if ($settings->fqdn) {
return $settings->fqdn;
}
if ($settings->ipv4) {
return $settings->ipv4 . ':8888';
}
if ($settings->ipv6) {
return $settings->ipv6 . ':8888';
}
return null;
}
public function generateSentinelToken()
{
$data = [
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,7 @@ public function up(): void
$table->integer('sentinel_metrics_refresh_rate_seconds')->default(10);
$table->integer('sentinel_metrics_history_days')->default(7);
$table->integer('sentinel_push_interval_seconds')->default(60);
$table->string('sentinel_custom_url')->nullable();
});
Schema::table('servers', function (Blueprint $table) {
$table->dateTime('sentinel_updated_at')->default(now());
Expand All @@ -39,11 +40,12 @@ public function down(): void
$table->integer('metrics_history_days')->default(30);
$table->boolean('is_server_api_enabled')->default(false);

$table->dropColumn('is_sentinel_enabled');
$table->dropColumn('sentinel_token');
$table->dropColumn('sentinel_metrics_refresh_rate_seconds');
$table->dropColumn('sentinel_metrics_history_days');
$table->dropColumn('sentinel_push_interval_seconds');
$table->dropColumn('is_sentinel_enabled');
$table->dropColumn('sentinel_custom_url');
});
Schema::table('servers', function (Blueprint $table) {
$table->dropColumn('sentinel_updated_at');
Expand Down
2 changes: 1 addition & 1 deletion database/seeders/DatabaseSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ public function run(): void
S3StorageSeeder::class,
StandalonePostgresqlSeeder::class,
OauthSettingSeeder::class,
GenerateSentinelTokenSeeder::class,
SentinelSeeder::class,
]);
}
}
2 changes: 1 addition & 1 deletion database/seeders/ProductionSeeder.php
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ public function run(): void

$this->call(OauthSettingSeeder::class);
$this->call(PopulateSshKeysDirectorySeeder::class);
$this->call(GenerateSentinelTokenSeeder::class);
$this->call(SentinelSeeder::class);

}
}
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
use App\Models\Server;
use Illuminate\Database\Seeder;

class GenerateSentinelTokenSeeder extends Seeder
class SentinelSeeder extends Seeder
{
public function run()
{
Expand All @@ -15,6 +15,12 @@ public function run()
if (str($server->settings->sentinel_token)->isEmpty()) {
$server->generateSentinelToken();
}
if (str($server->settings->sentinel_custom_url)->isEmpty()) {
$url = $server->generateSentinelUrl();
logger()->info("Setting sentinel custom url for server {$server->id} to {$url}");
$server->settings->sentinel_custom_url = $url;
$server->settings->save();
}
}
});
} catch (\Throwable $e) {
Expand Down
3 changes: 3 additions & 0 deletions resources/views/livewire/server/form.blade.php
Original file line number Diff line number Diff line change
Expand Up @@ -305,6 +305,9 @@ functional issues.</p>
<div class="flex flex-wrap gap-2 sm:flex-nowrap items-end">
<x-forms.input type="password" id="server.settings.sentinel_token" label="Sentinel token"
required helper="Token for Sentinel." />
<x-forms.input id="server.settings.sentinel_custom_url" label="Sentinel custom URL"
helper="Custom URL for Sentinel." />

<x-forms.button wire:click="regenerateSentinelToken">Regenerate</x-forms.button>
</div>
<div class="flex flex-col gap-2">
Expand Down

0 comments on commit 46ec8ee

Please sign in to comment.