39 lines
1.2 KiB
PHP
39 lines
1.2 KiB
PHP
<?php
|
|
|
|
namespace App\Console\Commands;
|
|
|
|
use App\Models\ProxyHost;
|
|
use Illuminate\Console\Command;
|
|
|
|
/**
|
|
* Gibt die Hostnamen aus, die der Reverse Proxy bedienen soll — eine je Zeile,
|
|
* mit ihrem Zweck.
|
|
*
|
|
* NUR die Liste, nicht die fertige Caddy-Konfiguration. Das ist der ganze Punkt.
|
|
*
|
|
* `install-agent.sh` begründet für die sudoers-Freigabe: „a grant is only worth
|
|
* anything if the holder cannot change what it grants." Dürfte diese Anwendung
|
|
* Caddy-Blöcke schreiben, die ein root-Helfer ungeprüft einbaut, hätte sie über
|
|
* den Umweg der Konfiguration alles, was der Proxy kann — Weiterleitungen
|
|
* irgendwohin, Dateiauslieferung aus jedem Verzeichnis. Sie gibt deshalb NAMEN
|
|
* aus, und die Vorlage darum herum steht im root-eigenen Helfer, wo diese
|
|
* Anwendung sie nicht anfassen kann.
|
|
*
|
|
* Format je Zeile: `<hostname> <purpose>`.
|
|
*/
|
|
class ProxyHostList extends Command
|
|
{
|
|
protected $signature = 'clupilot:proxy-hosts';
|
|
|
|
protected $description = 'Lists the hostnames the reverse proxy should serve, one per line';
|
|
|
|
public function handle(): int
|
|
{
|
|
foreach (ProxyHost::query()->orderBy('hostname')->get() as $host) {
|
|
$this->line($host->hostname.' '.$host->purpose);
|
|
}
|
|
|
|
return self::SUCCESS;
|
|
}
|
|
}
|