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
- 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.

- 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.

- 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.

- 4Cliquez sur Exécuter pour initialiser la base de données ; cela crée les tables dont GeckoFlag a besoin.

- 5Créez votre compte administrateur avec un nom, une adresse e-mail et un mot de passe.

- 6Saisissez votre clé de licence pour la vérifier.

- 7Une fois votre licence vérifiée, tout est prêt : connectez-vous avec votre nouveau compte administrateur et commencez à configurer vos projets.

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
webrootsitué à l'intérieur du dossier GeckoFlag, et non le dossier GeckoFlag lui-même. - Adaptez
server_name(le domaine),root(l'emplacement de GeckoFlag) etfastcgi_pass(la destination de connexion de PHP-FPM) à votre environnement. - Ajoutez la configuration HTTPS (
listen 443 sslet 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.