refactor: config/mailwolt.php → config/clubird.php + Artisan Commands umbenennen

- config/mailwolt.php → config/clubird.php (Datei umbenannt)
- Alle config('mailwolt.*') → config('clubird.*') ersetzt (15 PHP + 3 Blade)
- Artisan-Signaturen: mailwolt:* → clubird:* (5 Commands)
- Artisan-Aufrufe in Jobs + Scheduler aktualisiert
- Config-Cache neu aufgebaut

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
main v1.1.382
boban 2026-04-27 01:00:46 +02:00
parent 8ea925e4ae
commit bbc7cc6c34
15 changed files with 33 additions and 33 deletions

View File

@ -6,7 +6,7 @@ use Illuminate\Console\Command;
class CheckUpdates extends Command
{
protected $signature = 'mailwolt:check-updates';
protected $signature = 'clubird:check-updates';
protected $description = 'Check for newer MailWolt releases via git tags';
public function handle(): int

View File

@ -6,12 +6,12 @@ use Illuminate\Console\Command;
class MailwoltRestart extends Command
{
protected $signature = 'mailwolt:restart-services';
protected $signature = 'clubird:restart-services';
protected $description = 'Restart or reload MailWolt-related system services';
public function handle(): int
{
$units = config('mailwolt.units', []);
$units = config('clubird.units', []);
foreach ($units as $u) {
$base = (string)($u['name'] ?? '');
@ -45,12 +45,12 @@ class MailwoltRestart extends Command
//class MailwoltRestart extends Command
//{
// protected $signature = 'mailwolt:restart-services';
// protected $signature = 'clubird:restart-services';
// protected $description = 'Restart or reload MailWolt-related system services';
//
// public function handle(): int
// {
// $units = config('mailwolt.units', []);
// $units = config('clubird.units', []);
// $allowed = ['reload','restart','try-reload-or-restart'];
//
// foreach ($units as $u) {
@ -90,12 +90,12 @@ class MailwoltRestart extends Command
//
//class MailwoltRestart extends Command
//{
// protected $signature = 'mailwolt:restart-services';
// protected $signature = 'clubird:restart-services';
// protected $description = 'Restart or reload MailWolt-related system services';
//
// public function handle(): int
// {
// $units = config('mailwolt.units', []);
// $units = config('clubird.units', []);
//
// foreach ($units as $u) {
// $unit = rtrim($u['name'] ?? '', '.service') . '.service';

View File

@ -6,7 +6,7 @@ use Illuminate\Console\Command;
class MigrateEnvReverb extends Command
{
protected $signature = 'mailwolt:migrate-env-reverb';
protected $signature = 'clubird:migrate-env-reverb';
protected $description = 'Migriert veraltete REVERB_* .env-Werte auf Domain-Basis';
public function handle(): int

View File

@ -7,7 +7,7 @@
//
//class ProvisionCert extends Command
//{
//// protected $signature = 'mailwolt:provision-cert
//// protected $signature = 'clubird:provision-cert
//// {domain : z.B. mail.example.com}
//// {--email= : E-Mail für Let\'s Encrypt}
//// {--self-signed : Statt LE ein self-signed Zertifikat erzeugen}';

View File

@ -7,7 +7,7 @@ use Illuminate\Console\Command;
class WizardDomains extends Command
{
protected $signature = 'mailwolt:wizard-domains
protected $signature = 'clubird:wizard-domains
{--ui= : UI-Domain}
{--mail= : Mail-Domain}
{--webmail= : Webmail-Domain}

View File

@ -26,10 +26,10 @@ class ValidateHost
return true;
}
$base = config('mailwolt.domain.base');
$uiSub = config('mailwolt.domain.ui');
$mtaSub = config('mailwolt.domain.mail');
$wmHost = config('mailwolt.domain.webmail_host');
$base = config('clubird.domain.base');
$uiSub = config('clubird.domain.ui');
$mtaSub = config('clubird.domain.mail');
$wmHost = config('clubird.domain.webmail_host');
$allowed = array_filter([
$wmHost,

View File

@ -67,7 +67,7 @@ class ProvisionCertJob implements ShouldQueue
if ($this->useLetsEncrypt) {
$this->emit($task, 'running', 'Lets Encrypt wird ausgeführt…', $mode);
$exit = Artisan::call('mailwolt:provision-cert', [
$exit = Artisan::call('clubird:provision-cert', [
'domain' => $this->domain,
'--email' => $this->email ?? '',
]);
@ -83,14 +83,14 @@ class ProvisionCertJob implements ShouldQueue
// Fallback → self-signed
$mode = 'self-signed';
$exit = Artisan::call('mailwolt:provision-cert', [
$exit = Artisan::call('clubird:provision-cert', [
'domain' => $this->domain,
'--self-signed' => true,
]);
}
} else {
$this->emit($task, 'running', 'Self-Signed Zertifikat wird erstellt…', $mode);
$exit = Artisan::call('mailwolt:provision-cert', [
$exit = Artisan::call('clubird:provision-cert', [
'domain' => $this->domain,
'--self-signed' => true,
]);
@ -120,7 +120,7 @@ class ProvisionCertJob implements ShouldQueue
// $task->update(['message' => 'Lets Encrypt wird ausgeführt…']);
// $this->syncCache($task);
//
// $exit = Artisan::call('mailwolt:provision-cert', [
// $exit = Artisan::call('clubird:provision-cert', [
// 'domain' => $this->domain,
// '--email' => $this->email ?? '',
// ]);
@ -131,7 +131,7 @@ class ProvisionCertJob implements ShouldQueue
// $this->syncCache($task);
//
// // Fallback: Self-Signed
// $exit = Artisan::call('mailwolt:provision-cert', [
// $exit = Artisan::call('clubird:provision-cert', [
// 'domain' => $this->domain,
// '--self-signed' => true,
// ]);
@ -140,7 +140,7 @@ class ProvisionCertJob implements ShouldQueue
// $task->update(['message' => 'Self-Signed wird erstellt…']);
// $this->syncCache($task);
//
// $exit = Artisan::call('mailwolt:provision-cert', [
// $exit = Artisan::call('clubird:provision-cert', [
// 'domain' => $this->domain,
// '--self-signed' => true,
// ]);

View File

@ -171,7 +171,7 @@ class DomainDnsModal extends ModalComponent
// --- Komfort / Web ---
[
'type' => 'CNAME',
'name' => (config('mailwolt.domain.webmail') ?: env('WEBMAIL_SUB', 'webmail')) . ".{$this->domainName}",
'name' => (config('clubird.domain.webmail') ?: env('WEBMAIL_SUB', 'webmail')) . ".{$this->domainName}",
'value' => "{$mailServerFqdn}.",
'helpLabel' => 'Webmail Alias',
'helpUrl' => 'https://en.wikipedia.org/wiki/CNAME_record',
@ -1176,7 +1176,7 @@ class DomainDnsModal extends ModalComponent
////
//// // Placeholder-Werte, sofern du sie anderswo speicherst gern ersetzen:
//// $serverIp = config('app.server_ip', 'DEINE.SERVER.IP');
//// $mxHost = config('mailwolt.mx_fqdn', 'mx.' . $this->domain->domain);
//// $mxHost = config('clubird.mx_fqdn', 'mx.' . $this->domain->domain);
//// $selector = optional(
//// DkimKey::where('domain_id', $this->domain->id)->where('is_active', true)->first()
//// )->selector ?? 'mwl1';

View File

@ -129,10 +129,10 @@ class DomainsSslForm extends Component
public function mount(): void
{
$this->base_domain = (string) config('mailwolt.domain.base', '');
$this->ui_sub = (string) config('mailwolt.domain.ui', '');
$this->webmail_sub = (string) config('mailwolt.domain.webmail', '');
$this->mta_sub = (string) config('mailwolt.domain.mail', '');
$this->base_domain = (string) config('clubird.domain.base', '');
$this->ui_sub = (string) config('clubird.domain.ui', '');
$this->webmail_sub = (string) config('clubird.domain.webmail', '');
$this->mta_sub = (string) config('clubird.domain.mail', '');
$this->loadMtaStsFromFileIfPossible();
}

View File

@ -24,7 +24,7 @@ class DomainsSslForm extends Component
public function mount(): void
{
$this->mail_domain_readonly = (string) config('mailwolt.domain.mail', 'mx');
$this->mail_domain_readonly = (string) config('clubird.domain.mail', 'mx');
$this->ui_domain = Setting::get('ui_domain', $this->ui_domain);
$this->webmail_domain = Setting::get('webmail_domain', $this->webmail_domain);
}

View File

@ -444,7 +444,7 @@ class SettingsForm extends Component
: implode('.', $parts);
}
$base = $derivedBase ?: rtrim((string) config('mailwolt.domain.base', ''), '.');
$base = $derivedBase ?: rtrim((string) config('clubird.domain.base', ''), '.');
$sub = function (string $full) use ($base): string {
$full = strtolower(trim($full));

View File

@ -2,8 +2,8 @@
<x-slot:breadcrumb>Übersicht</x-slot:breadcrumb>
@php
$_wmSub = config('mailwolt.domain.webmail');
$_wmBase = config('mailwolt.domain.base');
$_wmSub = config('clubird.domain.webmail');
$_wmBase = config('clubird.domain.base');
$_wmUrl = ($_wmSub && $_wmBase)
? 'https://'.$_wmSub.'.'.$_wmBase.'/inbox'
: url('/webmail/inbox');

View File

@ -4,7 +4,7 @@
<label class="block text-white/60 text-sm mb-1">Sprache</label>
<select wire:model.defer="locale"
class="w-full h-11 rounded-xl border border-white/10 bg-white/[0.04] px-3 text-white/90">
@foreach (config('mailwolt.language') as $key => $lang)
@foreach (config('clubird.language') as $key => $lang)
<option value="{{ $lang['locale'] }}">{{ $lang['label'] }}</option>
@endforeach
</select>

View File

@ -12,8 +12,8 @@ Artisan::command('inspire', function () {
Schedule::job(RunHealthChecks::class)->everyMinute()->withoutOverlapping();
Schedule::command('spamav:collect')->everyFiveMinutes()->withoutOverlapping();
//Schedule::command('mailwolt:check-updates')->dailyAt('04:10');
Schedule::command('mailwolt:check-updates')->everytwoMinutes();
//Schedule::command('clubird:check-updates')->dailyAt('04:10');
Schedule::command('clubird:check-updates')->everytwoMinutes();
Schedule::command('rbl:probe')->weeklyOn(0, '3:30')->withoutOverlapping();