Manuel

Installation

Installation

v1.0.0+

GeckoFlag est un logiciel auto-hébergé que vous installez sur votre propre serveur ; un installateur dédié vous guide tout au long du processus pour que chacun puisse le configurer facilement.

Avant de commencer

  • Vérifiez que votre serveur répond à la configuration requise. Composer n'est pas nécessaire : le paquet distribué inclut déjà ses dépendances (le dossier vendor), il fonctionne donc aussi dans les environnements où vous ne pouvez pas exécuter Composer.
  • Préparez les informations de connexion à votre base de données : une base de données neuve ou une base existante vide. Nous déconseillons de partager la base de données avec une autre application.
  • Le HTTPS n'est pas strictement obligatoire, mais comme GeckoFlag gère des identifiants de connexion et des données personnelles, nous vous recommandons vivement de l'exécuter en HTTPS.
  • Terminez l'installation dès que les fichiers sont téléversés. Tant que l'installation n'est pas terminée, toute personne connaissant l'URL peut ouvrir l'installateur.
  • Si vous utilisez Nginx, effectuez au préalable la configuration décrite plus bas dans « Si vous utilisez Nginx ».

Étapes d'installation

  1. 1Téléversez les fichiers GeckoFlag sur votre serveur via FTP/SFTP ou le panneau de contrôle de votre hébergeur, puis extrayez-les.Gestionnaire de fichiers affichant les fichiers et dossiers GeckoFlag extraits sur le serveur
  2. 2Ouvrez l'installateur dans votre navigateur. Il examine l'environnement de votre serveur (version de PHP, extensions requises et autorisations des dossiers) et affiche une liste de vérification.GeckoFlag Setup, étape 1 : Environment Check, affichant la version de PHP, les extensions requises et les permissions des dossiers, tous en vert
  3. 3Saisissez les informations de connexion à votre base de données (hôte, port, nom de la base de données, nom d'utilisateur et mot de passe) et continuez.GeckoFlag Setup, étape 2 : Database Connection, avec des champs pour l'hôte, le port, le nom, l'utilisateur et le mot de passe de la base de données
  4. 4Cliquez sur Exécuter pour initialiser la base de données ; cela crée les tables dont GeckoFlag a besoin.GeckoFlag Setup, étape 3 : Initialize the Database, avec un bouton Run
  5. 5Créez votre compte administrateur avec un nom, une adresse e-mail et un mot de passe.GeckoFlag Setup, étape 4 : Create Administrator Account, avec des champs pour le nom, l'e-mail et le mot de passe
  6. 6Saisissez votre clé de licence pour la vérifier.GeckoFlag Setup, étape 5 : License Verification, avec un champ pour la clé de licence
  7. 7Une fois votre licence vérifiée, tout est prêt : connectez-vous avec votre nouveau compte administrateur et commencez à configurer vos projets.GeckoFlag Setup, étape 5 : License Verification, confirmant que la clé de licence a été vérifiée avec succès

Remarques sur l'hébergement

Le bon fonctionnement de GeckoFlag a été confirmé chez de nombreux hébergeurs mutualisés courants. Selon la configuration de PHP, comme upload_max_filesize, les fonctions de téléversement de fichiers peuvent être limitées chez certains hébergeurs.

Si vous utilisez Nginx

Avec Apache, le fichier .htaccess fourni avec GeckoFlag bloque automatiquement l'accès direct aux fichiers de configuration, aux journaux, etc. Nginx n'utilisant pas .htaccess, ajoutez le contenu suivant à la configuration de votre serveur. Sans cela, vos fichiers de configuration et vos fichiers téléversés risquent d'être visibles depuis l'extérieur.

Chez les hébergeurs qui combinent Nginx et Apache (configuration dans laquelle les requêtes reçues par Nginx sont traitées par Apache), .htaccess est actif et cette configuration n'est donc pas nécessaire. Pour savoir si .htaccess peut être utilisé, consultez la documentation de votre hébergeur.

  • Le dossier public (racine des documents) doit être le dossier webroot situé à l'intérieur du dossier GeckoFlag, et non le dossier GeckoFlag lui-même.
  • Adaptez server_name (le domaine), root (l'emplacement de GeckoFlag) et fastcgi_pass (la destination de connexion de PHP-FPM) à votre environnement.
  • Ajoutez la configuration HTTPS (listen 443 ssl et la déclaration des certificats) selon la méthode propre à votre environnement.
server {
    listen 80;
    server_name pm.example.com;

    # Le dossier public (racine des documents) est le dossier webroot de GeckoFlag
    root /var/www/geckoflag/webroot;
    index index.php;

    # Ne pas afficher la liste du contenu des dossiers
    autoindex off;

    # Pour pouvoir téléverser les ZIP de mise à jour et de sauvegarde
    # (valeur par défaut de Nginx : 1 Mo). Réglez aussi upload_max_filesize
    # et post_max_size de PHP sur une valeur au moins égale
    client_max_body_size 100m;

    # Ne pas servir les fichiers cachés (.htaccess, .git, etc.)
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # Ne servir que des images depuis les dossiers d'images téléversées
    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;
        }
        # Les images SVG sont uniquement affichées (aucun script n'est exécuté)
        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;
    }

    # Ne pas servir directement le dossier files
    location ^~ /files/ {
        return 404;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # Seul index.php est exécuté en tant que PHP
    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;
    }
}

Après avoir modifié la configuration, vérifiez la syntaxe avec nginx -t, puis rechargez Nginx.

Si vous passez par un CDN ou un proxy inverse (Cloudflare, etc.)

GeckoFlag utilise l'adresse IP de connexion reçue par le serveur pour limiter le nombre d'échecs de connexion et pour appliquer la restriction d'accès (adresse IP). Derrière un CDN ou un proxy inverse, tous les utilisateurs semblent se connecter depuis l'adresse IP du proxy, ce qui peut entraîner les problèmes suivants :

  • Lorsqu'une personne échoue plusieurs fois à se connecter, les autres utilisateurs peuvent eux aussi être empêchés de se connecter pendant un certain temps.
  • La Restriction d’accès (adresse IP) ne fonctionne pas correctement.

Dans ce type de configuration, configurez le serveur web pour qu'il reçoive l'adresse IP de connexion réelle (mod_remoteip pour Apache, module real_ip pour Nginx et, dans le cas de Cloudflare, enregistrement de la liste d'adresses IP publiée par l'entreprise, etc.). Pour la procédure, consultez la documentation de votre hébergeur ou de votre CDN.