@extends('layouts.admin') @php $providers = collect(); $providerEngines = []; $dashboardSettings = app(\Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Services\Databases\Providers\DatabaseDashboardSettingsService::class); $sqlDashboardSettings = $dashboardSettings->all(); $redisAllocationsEnabled = $sqlDashboardSettings['redis_allocations_enabled']; if (class_exists(\Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::class)) { $providerEngines = [ \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_MYSQL => 'MySQL / MariaDB', \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_POSTGRESQL => 'PostgreSQL', \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_MONGODB => 'MongoDB', \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_REDIS => 'Redis', ]; try { $providers = \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::query() ->with('node') ->withCount('allocations') ->orderBy('engine') ->orderBy('name') ->get(); } catch (\Throwable $exception) { $providers = collect(); } } $providerRoutesLoaded = \Illuminate\Support\Facades\Route::has('admin.extensions.betterdatabases.post'); $providerSettingsRouteLoaded = \Illuminate\Support\Facades\Route::has('admin.extensions.betterdatabases.patch'); $providerStoreAction = route('admin.extensions.betterdatabases.post'); $panelRedisPassword = config('database.redis.default.password'); $panelRedisPasswordMissing = $panelRedisPassword === null || $panelRedisPassword === '' || strtolower((string) $panelRedisPassword) === 'null'; $nativeHostCount = count($hosts); $providerCount = $providers->count(); @endphp @section('title') Better Databases @endsection @section('content-header')
Set REDIS_PASSWORD and keep port 6379 private before exposing Redis-related features.
{{ $redisAllocationsEnabled ? 'Use only with private networking, generated passwords, memory limits, and one Redis process per allocation.' : 'Recommended default. Enable only for trusted infrastructure with isolated Redis allocation processes.' }}
| Name | Endpoint | Engine | Scope | Usage | Status | Actions |
|---|---|---|---|---|---|---|
| {{ $host->name }} |
{{ $host->host }}:{{ $host->port }}
|
MySQL / MariaDB | @if(! is_null($host->node)) {{ $host->node->name }} @else None @endif | {{ $host->databases_count }} | Enabled | Manage |
| {{ $provider->name }} |
{{ $provider->host }}:{{ $provider->port }}
|
{{ $providerEngines[$provider->engine] ?? $provider->engine }} @if(array_get($provider->options ?? [], 'tls')) TLS @endif | @if(! is_null($provider->node)) {{ $provider->node->name }} @else Global @endif | @if($provider->engine === \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_REDIS) @php $redisOptions = $provider->options ?? []; $redisStart = array_get($redisOptions, 'redis_port_start'); $redisEnd = array_get($redisOptions, 'redis_port_end'); $redisCapacity = $redisStart && $redisEnd ? ($redisEnd - $redisStart + 1) : 0; $redisMax = array_get($redisOptions, 'redis_max_instances') ?: $redisCapacity; $redisUsed = \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProviderAllocation::query() ->where('database_provider_id', $provider->id) ->where('engine', \Pterodactyl\BlueprintFramework\Extensions\betterdatabases\Models\DatabaseProvider::ENGINE_REDIS) ->count(); @endphp @if($redisStart && $redisEnd) {{ $redisUsed }} / {{ $redisMax }} @if(!$redisAllocationsEnabled) @endif @if(empty($redisOptions['redis_enable_allocations'])) @endif @else Range needed @endif @else {{ $provider->allocations_count }} @endif | @if($provider->enabled) Enabled @else Disabled @endif | @if($providerRoutesLoaded) @else Read only @endif |
| No database connections have been configured. | ||||||