Installation
v1.0.0+GeckoFlag ist eine selbst gehostete Software, die Sie auf Ihrem eigenen Server installieren; ein eigener Installer führt Sie durch den Vorgang, sodass jeder sie problemlos einrichten kann.
Bevor Sie beginnen
- Stellen Sie sicher, dass Ihr Server die Systemanforderungen erfüllt. Composer ist nicht erforderlich: Das ausgelieferte Paket enthält seine Abhängigkeiten bereits (den Ordner vendor) und funktioniert daher auch in Umgebungen, in denen Sie Composer nicht ausführen können.
- Halten Sie die Verbindungsdaten Ihrer Datenbank bereit: eine neue oder eine bestehende, leere Datenbank. Wir empfehlen, die Datenbank nicht mit einer anderen Anwendung zu teilen.
- HTTPS ist nicht zwingend erforderlich, aber da GeckoFlag Zugangsdaten und personenbezogene Daten verarbeitet, empfehlen wir dringend, es mit HTTPS zu betreiben.
- Schließen Sie die Installation unmittelbar nach dem Hochladen der Dateien ab. Bis die Installation abgeschlossen ist, kann jeder, der die URL kennt, den Installer öffnen.
- Wenn Sie Nginx verwenden, nehmen Sie vorher die Einstellungen unter „Bei Verwendung von Nginx“ weiter unten vor.
Installationsschritte
- 1Laden Sie die GeckoFlag-Dateien per FTP/SFTP oder über das Kontrollpanel Ihres Hostings auf Ihren Server hoch und entpacken Sie sie.

- 2Öffnen Sie den Installer in Ihrem Browser. Er prüft die Umgebung Ihres Servers (PHP-Version, erforderliche Erweiterungen und Ordnerberechtigungen) und zeigt eine Checkliste an.

- 3Geben Sie die Verbindungsdaten Ihrer Datenbank ein (Host, Port, Datenbankname, Benutzername und Passwort) und fahren Sie fort.

- 4Klicken Sie auf Ausführen, um die Datenbank zu initialisieren; dabei werden die Tabellen angelegt, die GeckoFlag benötigt.

- 5Erstellen Sie Ihr Administratorkonto mit Name, E-Mail-Adresse und Passwort.

- 6Geben Sie Ihren Lizenzschlüssel zur Überprüfung ein.

- 7Sobald Ihre Lizenz verifiziert ist, ist alles bereit: Melden Sie sich mit Ihrem neuen Administratorkonto an und beginnen Sie, Ihre Projekte einzurichten.

Hinweise zum Hosting
GeckoFlag läuft nachweislich bei vielen gängigen Shared-Hosting-Anbietern. Abhängig von der PHP-Konfiguration, etwa upload_max_filesize, können die Funktionen zum Hochladen von Dateien bei manchen Anbietern eingeschränkt sein.
Bei Verwendung von Nginx
Unter Apache wird der direkte Zugriff auf Konfigurationsdateien, Protokolle usw. durch die mit GeckoFlag ausgelieferte .htaccess automatisch verweigert. Da Nginx keine .htaccess verwendet, fügen Sie bitte den folgenden Inhalt zur Serverkonfiguration hinzu. Andernfalls können Konfigurationsdateien und hochgeladene Dateien von außen einsehbar sein.
Bei Hosting-Angeboten, die Nginx und Apache kombinieren (Nginx nimmt die Anfragen entgegen und Apache verarbeitet sie), ist .htaccess wirksam, sodass diese Konfiguration nicht erforderlich ist. Ob .htaccess verwendet werden kann, entnehmen Sie bitte der Dokumentation Ihres Hosting-Anbieters.
- Der öffentliche Ordner (Document Root) muss nicht der GeckoFlag-Ordner selbst sein, sondern der darin enthaltene Ordner
webroot. - Passen Sie
server_name(Domain),root(Speicherort von GeckoFlag) undfastcgi_pass(Verbindungsziel von PHP-FPM) an Ihre Umgebung an. - Ergänzen Sie die HTTPS-Konfiguration (
listen 443 sslund die Angabe des Zertifikats) entsprechend der Vorgehensweise in Ihrer Umgebung.
server {
listen 80;
server_name pm.example.com;
# Öffentlicher Ordner (Document Root) ist der webroot-Ordner von GeckoFlag
root /var/www/geckoflag/webroot;
index index.php;
# Keine Liste des Ordnerinhalts anzeigen
autoindex off;
# Damit ZIP-Dateien für Updates und Backups hochgeladen werden können
# (Standardwert von Nginx: 1 MB). Setzen Sie auch upload_max_filesize und
# post_max_size von PHP auf denselben oder einen höheren Wert
client_max_body_size 100m;
# Versteckte Dateien (.htaccess, .git usw.) nicht ausliefern
location ~ /\.(?!well-known/) {
deny all;
}
# Aus den Ordnern für hochgeladene Bilder nur Bilder ausliefern
location ~ ^/img/(avatars|project_thumbnails|branding)/ {
location ~* \.(jpe?g|jfif|png|gif|webp|ico)$ {
add_header X-Content-Type-Options "nosniff" always;
try_files $uri =404;
}
# SVG-Bilder nur zur Anzeige (keine Ausführung von Skripten)
location ~* \.svg$ {
add_header X-Content-Type-Options "nosniff" always;
add_header Content-Security-Policy "default-src 'none'; img-src data:; style-src 'unsafe-inline'; sandbox" always;
try_files $uri =404;
}
return 403;
}
# Den Ordner files nicht direkt ausliefern
location ^~ /files/ {
return 404;
}
location / {
try_files $uri $uri/ /index.php?$args;
}
# Als PHP wird nur index.php ausgeführt
location = /index.php {
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/index.php;
fastcgi_pass unix:/run/php/php8.3-fpm.sock;
}
location ~ \.php$ {
return 404;
}
}
Prüfen Sie nach dem Ändern der Konfiguration die Syntax mit nginx -t und laden Sie Nginx neu.
Betrieb hinter einem CDN oder Reverse Proxy (z. B. Cloudflare)
GeckoFlag verwendet die IP-Adresse des Clients, die der Server empfängt, um fehlgeschlagene Anmeldeversuche zu begrenzen und die Zugriffsbeschränkung (IP-Adresse) umzusetzen. Hinter einem CDN oder Reverse Proxy erscheinen alle Zugriffe so, als kämen sie von der IP-Adresse des Proxys. Dadurch kann Folgendes passieren:
- Wenn jemand mehrmals bei der Anmeldung scheitert, können sich vorübergehend auch andere Benutzer nicht anmelden.
- Die Zugriffsbeschränkung (IP-Adresse) funktioniert nicht korrekt.
Konfigurieren Sie in einer solchen Umgebung den Webserver so, dass er die tatsächliche IP-Adresse des Clients übernimmt (z. B. mit mod_remoteip unter Apache, dem Modul real_ip unter Nginx oder – bei Cloudflare – durch Eintragen der von Cloudflare veröffentlichten IP-Adressbereiche). Die genaue Vorgehensweise entnehmen Sie bitte der Dokumentation Ihres Hosting-Anbieters bzw. CDN.