Handbuch

Installation

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

  1. 1Laden Sie die GeckoFlag-Dateien per FTP/SFTP oder über das Kontrollpanel Ihres Hostings auf Ihren Server hoch und entpacken Sie sie.Datei-Manager, der die extrahierten GeckoFlag-Dateien und -Ordner auf dem Server zeigt
  2. 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.GeckoFlag Setup, Schritt 1: Environment Check, zeigt PHP-Version, erforderliche Erweiterungen und Ordnerberechtigungen, alle grün
  3. 3Geben Sie die Verbindungsdaten Ihrer Datenbank ein (Host, Port, Datenbankname, Benutzername und Passwort) und fahren Sie fort.GeckoFlag Setup, Schritt 2: Database Connection, mit Feldern für Host, Port, Name, Benutzer und Passwort der Datenbank
  4. 4Klicken Sie auf Ausführen, um die Datenbank zu initialisieren; dabei werden die Tabellen angelegt, die GeckoFlag benötigt.GeckoFlag Setup, Schritt 3: Initialize the Database, mit einer Schaltfläche Run
  5. 5Erstellen Sie Ihr Administratorkonto mit Name, E-Mail-Adresse und Passwort.GeckoFlag Setup, Schritt 4: Create Administrator Account, mit Feldern für Name, E-Mail und Passwort
  6. 6Geben Sie Ihren Lizenzschlüssel zur Überprüfung ein.GeckoFlag Setup, Schritt 5: License Verification, mit einem Feld für den Lizenzschlüssel
  7. 7Sobald Ihre Lizenz verifiziert ist, ist alles bereit: Melden Sie sich mit Ihrem neuen Administratorkonto an und beginnen Sie, Ihre Projekte einzurichten.GeckoFlag Setup, Schritt 5: License Verification, das bestätigt, dass der Lizenzschlüssel erfolgreich verifiziert wurde

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) und fastcgi_pass (Verbindungsziel von PHP-FPM) an Ihre Umgebung an.
  • Ergänzen Sie die HTTPS-Konfiguration (listen 443 ssl und 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.