CluPilotCloud/app/Console/Commands/ProxyHostList.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;
}
}