Der Installationsassistent für ignis.
Important
Du willst ignis installieren? Lade das Install-Package
(ignis-<version>-install.zip) vom aktuellen Release
herunter. Es enthält setup.php, die Anwendung und eine Kurzanleitung
(readme.txt). Die ausführliche Anleitung steht in der
INSTALL.md.
Hier liegt der Quellcode von setup.php. Der Release-Build von ignis holt die
Datei bei jedem Release von hier, prüft sie mit php -l und packt sie ins
Install-Package.
- Prüft die Anforderungen: PHP ab 8.3 (getestet mit 8.3 und 8.4), die Erweiterungen curl, fileinfo, gd, intl, json, mbstring, openssl, pdo, pdo_mysql, xml und zip, Schreibrechte im Zielordner.
- Entpackt das App-Archiv
ignis-v<version>.zip, das nebensetup.phpliegt. Fehlt es, lädt er das App-Archiv der neuesten Version von GitHub, Betas eingeschlossen. Ist die GitHub-API nicht erreichbar (Abruflimit), bricht er mit dem Hinweis auf das Install-Package ab.vendor/ist im Archiv enthalten, Composer läuft nicht. - Schreibt die
.env(APP_ENV,DB_*,DISCORD_CLIENT_ID,DISCORD_CLIENT_SECRET) und führt die Datenbank-Migrationen aus. - Trägt System-URL, Basis-Pfad und Servername in die Tabelle
intra_configein. Klappt das nicht, weil die Migrationen gescheitert sind, zeigt er an, welche Werte nach dem ersten Start einzutragen sind. - Schreibt das Lockfile
.setup-lockedund löscht App-Archiv,readme.txtund sich selbst.
Einen Admin-Zugang legt der Assistent nicht an: Die erste Anmeldung über Discord bekommt Administratorrechte. Deshalb direkt nach dem Setup anmelden.
Danach empfohlen: Docroot auf <installationsordner>/public umstellen und
den Cron einrichten (php cli/intra.php cron:tick jede Minute oder
https://<host>/cron.php?token=<CRON_ENDPOINT_TOKEN> über einen externen
Dienst). ignis braucht HTTPS.
„Verzeichnis nicht beschreibbar“: Der PHP-User (www-data o. ä.) braucht
Schreibrechte im Zielordner: chown www-data . && chmod 0775 .
„Fehlende PHP-Extensions“: Auf Shared Hosting im Kundenpanel unter
„PHP-Module“ aktivieren. Auf einem VPS z. B. apt install php8.3-intl, dann
PHP-FPM neu starten.
„setup.php konnte nicht automatisch gelöscht werden“: Bitte manuell
entfernen. Das Lockfile .setup-locked verhindert zwar weitere Läufe, die
Datei gehört trotzdem nicht in den Webroot.
Migrations-Hinweis im Abschluss: ignis versucht die Migrationen beim
ersten Aufruf erneut. Klappt auch das nicht: vendor/bin/phinx migrate -e production
im Installationsordner.
php -l setup.php # Syntax-Check (läuft als CI auf jedem Push)Zum Testen ein App-Archiv als ignis-test.zip neben setup.php legen.
Mit setup.php?dev gibt es zusätzlich einen Git-Checkout von main oder
einem eigenen Branch. Der baut nur mit Zugriff auf die privaten WebPackages
und ist für echte Installationen nicht gedacht.
GPL-3.0, wie ignis selbst.