尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证FFS2play standalone matchmaking server (PHP)
翻译准备中
取自仓库 README
正在加载完整 README。
查看完整 README ↗Portail web et serveur de mise en relation pour FFS2play, le multijoueur pair à pair pour MSFS, Prepar3D, FSX, X-Plane et FlightGear.
PHP natif sans dépendance (aucun Composer), MariaDB ou MySQL. Se déploie par simple copie sur un hébergement mutualisé.
La version minimale sans base de données ni interface web (mot de passe de session commun) reste disponible : tag
v1-standalone.
pdo_mysql, openssl, mbstring, dom, simplexml, xmlwritermod_rewrite (fichiers .htaccess fournis) ou nginxpublic/.
Si votre hébergeur ne le permet pas, laissez le domaine sur le dossier principal : le .htaccess racine
redirige tout vers public/ et bloque l'accès au code, à la configuration et aux clés.https://votre-domaine/install/ : l'installeur vérifie les prérequis, crée les tables,
la paire de clés RSA du serveur, le compte administrateur et le serveur de jeu « Public ».
Il se verrouille ensuite (présence de config/config.php).mail() de l'hébergeur ou serveur SMTP) et faites un envoi de test.Installation en ligne de commande (VPS) — à lancer sous l'utilisateur du serveur web pour qu'il puisse
écrire dans config/ et storage/ :
sudo -u www-data php bin/install.php --db-host=localhost --db-name=ffs2play --db-user=ffs2play --db-pass=... \
--admin-callsign=Admin [email protected] --admin-password=... --site-name="FFS2play"
root /var/www/ffs2play/public;
index index.php;
location / { try_files $uri $uri/ /index.php?$query_string; }
location ~ \.php$ { include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_pass unix:/run/php/php8.3-fpm.sock; }
Sans réécriture d'URL possible, passez 'pretty_urls' => false dans config/config.php (liens en index.php/page) ;
l'installeur le détecte automatiquement.
.htaccess)Copiez le contenu de public/ à la racine web, et à côté les dossiers src/, templates/, database/
et config/ (disposition « à plat »). Le portail le détecte tout seul. Dans ce cas, tout ce qui est secret est
stocké dans des fichiers PHP (config/config.php, config/keys/*.php) : une requête web les exécute sans rien
afficher. Ne copiez pas tests/, docker/ ni bin/ sur un tel hébergement.
Dans ffs2play, créez un profil avec l'URL du site (ex. https://ffs2play.fr), votre indicatif et
votre mot de passe. Le client appelle <URL>/action.php. La page profil du site rappelle ces informations.
Remplacez les fichiers (en conservant config/ et storage/), puis appliquez les éventuelles mises à jour
du schéma depuis Administration › Réglages ou avec php bin/install.php --migrate.
L'URL appelée par les clients (action.php) ne change pas. Les comptes remplacent le mot de passe de session :
chaque pilote crée son compte sur le site avec l'indicatif qu'il utilise dans ffs2play. L'ancien
config/config_gen.php n'est plus utilisé ; une nouvelle paire de clés est générée à l'installation
(les clients récupèrent le certificat à chaque connexion, aucune mise à jour de leur côté).
Client → action.php | Rôle |
|---|---|
hello | renvoie le certificat RSA du serveur |
verify | authentification avec le compte du site : clé AES-256 du client cryptée en RSA PKCS#1 v1.5, mot de passe en AES-256-CFB ; ouverture du slot sur le serveur choisi dans le profil ; liste des pilotes |
liveupdate (30 s) | maintien du slot, position, phase de vol, liste des pilotes |
atc (5 s) | position (carte en direct, distance des vols) |
logout | fermeture du slot et de la connexion |
La liste des pilotes (whazzup) contient les pilotes actifs du même serveur, plus ceux en mode global si le
demandeur l'est aussi. Le demandeur y figure : le client l'ignore, sauf en mode shadow où il crée un pair
superposé pour tester le P2P en boucle locale. L'attribut team vaut l'indicatif du chef d'équipe.
Les adresses IP ne sont transmises qu'aux clients, cryptées avec leur propre clé ; elles ne sont jamais affichées sur le site.
public/ racine web : index.php (pages), action.php (client ffs2play), install/, assets/
src/ Core (base, routeur, session, e-mails…), Auth, Client (protocole), Domain (serveurs, vols…), Web (pages)
templates/ gabarits HTML et e-mails
database/ migrations SQL
config/ configuration et clés générées (jamais versionnées)
storage/ données de travail
docker compose up -d # http://localhost:8080 (installeur au premier lancement, base « db »)
docker compose exec web php tests/run.php # tests (base ffs2play_test recréée à chaque fois)
Les tests installent le portail dans une base jetable puis rejouent, contre le serveur intégré de PHP : le chiffrement (vecteur de référence OpenSSL du client), le protocole ffs2play complet (comptes, serveurs, mode global, équipes, positions), les pages web (inscription → e-mail → validation → profil, CSRF, droits, limitation des essais) et la détection des vols.
The license is as published by the Free Software Foundation and appearing in the file LICENSE.GPLv3 included in the packaging of this software. Please review the following information to ensure the GNU General Public License requirements will be met: https://www.gnu.org/licenses/gpl-3.0.html.