Derrière un proxy : HTTPS, Cloudflare et adresse IP des visiteurs
Obtenir le HTTPS pour ton Hub (Caddy, Cloudflare, proxy de ton hébergeur, Nginx), puis régler AGORA_TRUSTED_PROXIES et laisser passer les flux en direct.
Mis à jour le 4 oct. 2026, 17 h 45
Sur cette page
En bref. Agora écoute en clair (HTTP) sur son port : 3000 avec Docker, l'allocation du panel sur un panel. Pour passer en HTTPS (la version chiffrée, avec le cadenas du navigateur), tu places un reverse proxy devant lui : un programme ou un service qui reçoit tes visiteurs en HTTPS sur ton domaine et les passe à Agora. Ensuite, tu dis à Agora qui a le droit d'annoncer l'adresse IP de tes visiteurs.
Le HTTPS devient indispensable dès que ton serveur sort des tests : la ressource FiveM refuse de parler à un Hub en http:// sur une adresse publique (une adresse de ton réseau local n'y est pas soumise).
Avant de commencer #
- Agora installé et joignable en
http://IP:PORT, par une des voies de Choisir entre Docker, l'œuf de panel et un serveur Node.js. - Un nom de domaine (par exemple
forum.monserveur.com), acheté chez un bureau d'enregistrement de domaines. Les mots reverse proxy, HTTPS, port et nom de domaine sont dans le glossaire. - L'accès administrateur d'Agora, pour changer l'adresse publique dans l'administration.
Étapes #
Choisis ta méthode selon ce que tu as :
Ta situation La méthode la plus simple Docker avec le compose manuel, domaine pointé sur ta machine, ports 80 et 443 libres Le profil Caddy du compose Docker, ou une autre machine, et tu as déjà Nginx, Traefik ou Caddy Ton reverse proxy actuel Panel (Pterodactyl, Pelican) ou serveur Node.js, domaine géré par Cloudflare Un tunnel Cloudflare Panel ou serveur Node.js, et ton hébergeur offre un sous-domaine HTTPS qui pointe vers ton port Le sous-domaine de l'hébergeur Mets en place le HTTPS avec la méthode choisie :
Profil Caddy (compose manuel) : renseigne
SITE_ADDRESSavec ton domaine dans le.env, puis lancedocker compose --profile caddy up -d. Caddy obtient et renouvelle le certificat tout seul. Les ports 80 et 443 doivent être libres.Reverse proxy existant : fais-le pointer vers le port d'Agora (
http://IP:3000avec Docker).Tunnel Cloudflare : un tunnel est une liaison sortante que Cloudflare ouvre vers ton serveur, sans rien ouvrir dans ton pare-feu. Dans ton tableau de bord Cloudflare Zero Trust, crée un tunnel, installe sur une machine qui joint ton serveur la commande qu'il te donne, puis ajoute un nom d'hôte public (
forum.monserveur.com) dont le service esthttp://IP:PORT, avec l'IP et le port de ton serveur. <!-- À CONFIRMER : libellés actuels de Cloudflare Zero Trust (Networks → Tunnels, nom d'hôte public), à vérifier sur un compte Cloudflare --><!-- CAPTURE C-068 -->
Sous-domaine de l'hébergeur : dans le panel de ton hébergeur, cherche une option du genre « sous-domaine » ou « proxy » qui relie un nom à ton port, puis utilise ce nom. <!-- À CONFIRMER : cette option varie d'un hébergeur à l'autre ; aucun hébergeur testé -->
Dis à Agora sa nouvelle adresse. Dans Administration → Configuration → Ressource Agora, champ Adresse publique du Hub, mets
https://forum.monserveur.com. (Si la variableSITE_URLest posée, le champ est en lecture seule et c'est elle qui sert.)<!-- CAPTURE C-066 -->
Mets à jour Discord. Ajoute l'URL de rappel
https://forum.monserveur.com/api/auth/callback/discordaux Redirects de ton application Discord : voir Relier Discord à Agora.Redéploie la ressource FiveM, qui embarque l'adresse : voir Installer la ressource FiveM agora.
Règle
AGORA_TRUSTED_PROXIES: voir plus bas « Qui peut annoncer l'IP d'un visiteur ».
Tu sais que c'est réussi quand… #
https://ton-domaine/api/healthrépond"ok":true, avec le cadenas dans le navigateur.<!-- CAPTURE C-067 -->
La connexion Discord fonctionne depuis la nouvelle adresse.
Serveur → Joueurs reçoit toujours le signal de la ressource.
Si ça ne marche pas #
| Ce que tu vois | Cause probable | Que faire |
|---|---|---|
| « Reconnexion… » clignote sur la carte live, le dispatch ou la console | Le proxy met en tampon ou coupe les connexions longues | Voir « Les flux en direct » plus bas |
Discord refuse la connexion (redirect_uri) | L'URL de rappel n'a pas été mise à jour | Voir Connexion Discord impossible |
| Page d'erreur de Cloudflare (502, 523…) | Le tunnel ou le proxy ne joint pas ton serveur | Vérifie l'IP et le port de la cible, et que le serveur tourne |
| La ressource FiveM ne se connecte plus | Elle embarque l'ancienne adresse | Redéploie-la : voir Dépanner la ressource FiveM |
| Des visiteurs sont limités à tort, ou tout le monde partage la même limite | AGORA_TRUSTED_PROXIES ne correspond pas à ta situation | Voir plus bas |
Pour aller plus loin #
Qui peut annoncer l'IP d'un visiteur (AGORA_TRUSTED_PROXIES) #
Agora limite certains gestes par adresse IP (mise en route, tablette, 911, recherche…). Il lit donc l'IP de la connexion, et ne croit l'en-tête X-Forwarded-For que s'il vient d'un mandataire de confiance.
| Valeur | Qui est cru | Pour quelle installation |
|---|---|---|
| vide | Les réseaux privés et la boucle locale | Reverse proxy sur la même machine ou le même réseau Docker, tunnel Cloudflare, profil Caddy |
none | Personne | Port ouvert directement sur Internet, rien devant. C'est la valeur d'une installation neuve avec install.sh |
| une liste | Exactement ces IP ou plages | Mandataire à une adresse publique, ou Cloudflare « nuage orange » directement devant le port |
Un tunnel Cloudflare dont le programme tourne sur une machine à adresse publique entre dans le cas « mandataire à une adresse publique » : liste cette adresse. <!-- À CONFIRMER : cas d'un tunnel Cloudflare lancé sur une machine à adresse publique -->
Tu ajoutes un reverse proxy devant une installation install.sh #
- Ouvre
/opt/agora/.env. - Remplace
AGORA_TRUSTED_PROXIES=noneparAGORA_TRUSTED_PROXIES=(vide). - Lance
cd /opt/agora && docker compose up -d.
Sur un panel #
La variable n'est pas dans l'œuf distribué. Sans elle, les réseaux privés sont crus : un autre conteneur du nœud pourrait annoncer l'IP de son choix aux limites de débit. Si tes joueurs arrivent directement sur le port (rien devant), l'administrateur du panel peut ajouter la variable à l'œuf avec la valeur none ; si un reverse proxy ou un tunnel Cloudflare tourne sur le nœud, laisse-la vide.
Cloudflare en proxy, sans tunnel #
Déclare les plages publiées sur cloudflare.com/ips, séparées par des virgules. Une liste remplace les réseaux privés : si ton reverse proxy est aussi dans un réseau Docker, mets les deux.
Les flux en direct #
La carte live, le dispatch et la console utilisent des réponses en flux (Server-Sent Events). Un proxy qui met en tampon ou coupe les connexions longues fait clignoter « Reconnexion… ».
Sur Nginx, désactive la mise en tampon et allonge le délai de lecture :
proxy_buffering off;
proxy_read_timeout 3600s;Cet article t'a aidé ?
Articles liés
- Installer avec Docker (install.sh)Une seule commande installe Agora et sa base PostgreSQL sur une machine Linux avec Docker : tu n'as aucune base à préparer.
- Installer sur PelicanImporter l'œuf Pelican (et pas celui de Pterodactyl), créer un serveur avec, puis démarrer : la base de données du Hub est intégrée, tu n'as rien à fournir.
- Installer sur un serveur Node.js d'hébergeur (agora.mjs)Tu n'as que le panel client d'un hébergeur ordinaire ? Commande un serveur Node.js, dépose un seul fichier (agora.mjs) et ta clé : Agora installe sa base de données et tout le reste.
- Les variables d'environnementOù et comment modifier les réglages de démarrage d'Agora selon ta voie d'installation (Docker, panel, serveur Node.js), et la liste de ceux qui comptent.
- La carte live : permissions, en service, multi-job, OneSyncLa position des joueurs en direct pour le staff, et pour les collègues en service d'un même job si tu l'ouvres ; presque aucun coût pour le serveur de jeu.
- Les paramètres du site et la page d'accueilAdministration → Configuration règle tout à chaud : nom, logo, langue, adresse publique, thème, Discord, paiements, sécurité, carte, portail, concession et tablette.