Tenant (cœur)
- name · slug · domain
- database
- game_type · framework
- modules_config
- n—1 User (propriétaire)
- 1—n Subscription
- 1—n GameBridgeEvent
Panel open source de contrôle serveur FiveM/QBCore avec outils admin.
Une communauté roleplay — FiveM avec QBCore ou ESX, Minecraft, DayZ, Arma 3 — gère ses joueurs, ses métiers, son site et ses abonnements avec une collection d’outils qui ne se parlent pas. Le serveur de jeu a ses propres données, que le panel ne peut pas lire directement sans ouvrir sa base au monde.
Offrir aux hébergeurs FiveM un panel admin open source pour écosystèmes QBCore.
PanelRP donne à chaque communauté un espace isolé dans sa propre base MySQL. Le jeu est relié par un bridge : une ressource Lua côté FiveM, un plugin Java côté Minecraft, qui envoient battements de cœur et événements vers une API dédiée. Chaque jeu est un module découvert au démarrage, et la synchronisation des données de jeu peut aussi passer par une connexion directe ou un tunnel SSH.
En ligne sur panelrp.com, en quatre langues, avec dix modules de jeu, un onboarding en douze étapes, un site public avec éditeur visuel et des abonnements Stripe, y compris la vente de VIP via Stripe Connect. La suite de tests tourne en trois lots parallèles et la sécurité est vérifiée par CodeQL et OWASP ZAP.
Développeur full-stack
Utilisateurs
Application
Services externes
Le propriétaire crée son compte puis sa communauté dans l’assistant de création.
Le service de création ouvre une base dédiée, lance les migrations du tenant et installe le module du jeu choisi.
Un assistant Livewire en douze étapes relie la base de jeu, établit la correspondance des tables, configure Discord et le thème.
Une clé API est générée ; la ressource Lua l’utilise pour appeler le panel. Seule son empreinte HMAC est stockée.
Le bridge envoie battements de cœur et événements ; un middleware retrouve la communauté à partir de l’empreinte de la clé.
Le répartiteur transmet chaque événement au handler concerné — économie, police… — qui met à jour la base de la communauté.
Les entités principales, leurs champs clés et leurs relations.
Slug, sous-domaine ou domaine personnalisé, base dédiée par communauté.
Douze étapes, de la base de jeu au thème du site.
Le panel reconnaît la structure de la base de jeu par empreinte et propose la correspondance.
Éditeur visuel et modèles de départ selon le type de communauté.
Joueurs, métiers, employés et bannissements.
Abonnements Stripe et vente de VIP par Stripe Connect.
ProblèmeUne purge de connexion lancée après l’ouverture de la transaction de test la détruisait : les tests se contaminaient entre eux.
SolutionOrdre corrigé : la synchronisation est passée de 39 à 8 échecs, et cinq vrais défauts sont apparus, dont des dates mises à null sans erreur.
ProblèmeUne communauté sans base pouvait hériter de la connexion de la précédente.
SolutionRéponse 503 explicite et base désélectionnée entre deux requêtes.
ProblèmeLa CI devenait inutilisable.
SolutionDécoupage en lots plateforme et tenant exécutés en parallèle.
ProblèmeLe workflow CodeQL était invalide depuis sa création.
SolutionWorkflow réparé, faux positifs SQL de l’audit corrigés.
ProblèmeLes clés API des serveurs de jeu étaient stockées telles quelles.
SolutionEmpreinte HMAC-SHA256, avec une lecture de repli pour migrer les anciennes clés.
Relevé dans le code source et l’historique Git du projet le 8 octobre 2026. Aucun chiffre d’usage ou de revenu n’est publié.
Disponible pour missions PHP / Laravel / WordPress / Silverstripe en Belgique et remote EU.