feat(setup): Systemcheck und Upload-Paket fuer klassisches Webhosting
Auf Shared Hosting gibt es keine Kommandozeile - ohne Anzeige laesst sich dort nicht feststellen, ob etwa gd fehlt, die PHP-Version zu alt ist oder data/ nicht beschreibbar ist. Der Setup-Assistent prueft das jetzt und listet es auf; im Dashboard meldet sich die Pruefung spaeter nur noch, wenn etwas nicht stimmt. Fehlende Pflichtbausteine sind Fehler, fehlende Kuer (intl, imagick, cURL) nur Hinweise mit Angabe, was dadurch entfaellt. build-release.sh erzeugt das Upload-Paket: Abhaengigkeiten ohne Entwicklungspakete, ohne Tests und Docker-Dateien. Dabei faellt eine 16 MB grosse Schriftart aus endroid/qr-code weg, die ausschliesslich fuer Beschriftungen unter dem QR-Code gebraucht wird - die erzeugt diese Anwendung nicht. Das Paket schrumpft damit von 18 MB auf 1 MB. Sollte spaeter doch eine Beschriftung dazukommen, erkennt das Skript das und behaelt die Datei. Die Variante ohne eigenen Webroot (alles liegt im Domainverzeichnis, die .htaccess im Stammverzeichnis leitet nach public/ um) war bisher gebaut, aber nie erprobt. Sie ist jetzt gegen eine Hoster-Simulation getestet: Ersteinrichtung, Kurzlinks, Weiterleitung, QR-Codes, Statistik und die Sperren fuer src/, vendor/, data/ und .env.
This commit is contained in:
+11
-1
@@ -28,6 +28,7 @@ use App\Security\RateLimiter;
|
||||
use App\Security\Session;
|
||||
use App\Security\SetupToken;
|
||||
use App\Service\DomainChecker;
|
||||
use App\Service\SystemCheck;
|
||||
use Throwable;
|
||||
|
||||
/**
|
||||
@@ -137,9 +138,18 @@ final class App
|
||||
$this->auth,
|
||||
new SetupToken($this->config->path($this->config->getString('DATA_DIR', 'data'))),
|
||||
$this->rateLimiter,
|
||||
new SystemCheck($this->config),
|
||||
);
|
||||
$login = new AuthController($this->config, $this->view, $this->session, $this->csrf, $this->auth, $this->rateLimiter);
|
||||
$dashboard = new DashboardController($this->view, $this->auth, $this->links, $this->visits, $this->config, $this->domains);
|
||||
$dashboard = new DashboardController(
|
||||
$this->view,
|
||||
$this->auth,
|
||||
$this->links,
|
||||
$this->visits,
|
||||
$this->config,
|
||||
$this->domains,
|
||||
new SystemCheck($this->config),
|
||||
);
|
||||
$linkController = new LinkController($this->config, $this->view, $this->session, $this->csrf, $this->auth, $this->links, $this->designs, $this->logos, $this->domains);
|
||||
$stats = new StatsController($this->config, $this->view, $this->auth, $this->links, $this->visits);
|
||||
$qrController = new QrController($this->config, $this->view, $this->session, $this->csrf, $this->auth, $this->links, $this->designs, $this->logos, $this->qr);
|
||||
|
||||
Reference in New Issue
Block a user