app->singleton(SettingsRepository::class, fn() => new SettingsRepository()); } /** * Bootstrap any application services. */ public function boot(\App\Support\SettingsRepository $settings): void { Sanctum::usePersonalAccessTokenModel(PersonalAccessToken::class); Domain::observe(DomainObserver::class); View::composer('layouts.dvx', function ($view) { try { $view->with([ 'mailboxCount' => MailUser::where('is_system', false)->where('is_active', true)->count(), 'domainCount' => Domain::where('is_system', false)->where('is_server', false)->count(), 'updateAvailable' => (bool) cache()->get('updates:latest'), ]); } catch (\Throwable) {} }); config(['app.version' => trim(@file_get_contents('/var/lib/mailwolt/version')) ?: 'dev']); if (file_exists(base_path('.git/HEAD'))) { $ref = trim(file_get_contents(base_path('.git/HEAD'))); if (str_starts_with($ref, 'ref:')) { $refFile = base_path('.git/' . substr($ref, 5)); $commit = @file_get_contents($refFile); } else { $commit = $ref; } config(['app.git_commit' => substr($commit ?? '', 0, 7)]); } try { $S = app(\App\Support\SettingsRepository::class); // 🕒 Zeitzone if ($tz = $S->get('system.timezone')) { config(['app.timezone' => $tz]); date_default_timezone_set($tz); } // 🌐 Sprache if ($locale = $S->get('system.locale')) { app()->setLocale($locale); } // 🌍 Domain / URL // if ($domain = $S->get('app.domain')) { // $scheme = $S->get('app.force_https', true) ? 'https' : 'http'; // config(['app.url' => "{$scheme}://{$domain}"]); // URL::forceRootUrl(config('app.url')); // if ($scheme === 'https') { // URL::forceScheme('https'); // } // } } catch (\Throwable $e) { // Keine Exceptions beim Booten, z. B. wenn DB oder Redis noch nicht erreichbar sind // \Log::warning('settings.boot_failed', ['msg' => $e->getMessage()]); } } // public function boot(SettingsRepository $settings): void // { // try { // $S = app(\App\Support\SettingsRepository::class); // if ($tz = $S->get('app.timezone')) { // config(['app.timezone' => $tz]); // date_default_timezone_set($tz); // } // if ($domain = $S->get('app.domain')) { // // Falls du APP_URL dynamisch überschreiben willst: // $scheme = $S->get('app.force_https', true) ? 'https' : 'http'; // config(['app.url' => $scheme.'://'.$domain]); // URL::forceRootUrl(config('app.url')); // if ($scheme === 'https') { // URL::forceScheme('https'); // } // } // } catch (\Throwable $e) { // // Im Bootstrap/Wartungsmodus still sein // } // } }