Agora

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
  1. Avant de commencer
  2. Étapes
  3. Tu sais que c'est réussi quand…
  4. Si ça ne marche pas
  5. Pour aller plus loin
  6. Qui peut annoncer l'IP d'un visiteur (AGORA_TRUSTED_PROXIES)
  7. Les flux en direct

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 #

  1. Choisis ta méthode selon ce que tu as :

    Ta situationLa méthode la plus simple
    Docker avec le compose manuel, domaine pointé sur ta machine, ports 80 et 443 libresLe profil Caddy du compose
    Docker, ou une autre machine, et tu as déjà Nginx, Traefik ou CaddyTon reverse proxy actuel
    Panel (Pterodactyl, Pelican) ou serveur Node.js, domaine géré par CloudflareUn tunnel Cloudflare
    Panel ou serveur Node.js, et ton hébergeur offre un sous-domaine HTTPS qui pointe vers ton portLe sous-domaine de l'hébergeur
  2. Mets en place le HTTPS avec la méthode choisie :

    • Profil Caddy (compose manuel) : renseigne SITE_ADDRESS avec ton domaine dans le .env, puis lance docker 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:3000 avec 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 est http://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é -->

  3. Dis à Agora sa nouvelle adresse. Dans Administration → Configuration → Ressource Agora, champ Adresse publique du Hub, mets https://forum.monserveur.com. (Si la variable SITE_URL est posée, le champ est en lecture seule et c'est elle qui sert.)

    <!-- CAPTURE C-066 -->

  4. Mets à jour Discord. Ajoute l'URL de rappel https://forum.monserveur.com/api/auth/callback/discord aux Redirects de ton application Discord : voir Relier Discord à Agora.

  5. Redéploie la ressource FiveM, qui embarque l'adresse : voir Installer la ressource FiveM agora.

  6. 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/health ré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 voisCause probableQue faire
« Reconnexion… » clignote sur la carte live, le dispatch ou la consoleLe proxy met en tampon ou coupe les connexions longuesVoir « Les flux en direct » plus bas
Discord refuse la connexion (redirect_uri)L'URL de rappel n'a pas été mise à jourVoir Connexion Discord impossible
Page d'erreur de Cloudflare (502, 523…)Le tunnel ou le proxy ne joint pas ton serveurVérifie l'IP et le port de la cible, et que le serveur tourne
La ressource FiveM ne se connecte plusElle embarque l'ancienne adresseRedéploie-la : voir Dépanner la ressource FiveM
Des visiteurs sont limités à tort, ou tout le monde partage la même limiteAGORA_TRUSTED_PROXIES ne correspond pas à ta situationVoir 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.

ValeurQui est cruPour quelle installation
videLes réseaux privés et la boucle localeReverse proxy sur la même machine ou le même réseau Docker, tunnel Cloudflare, profil Caddy
nonePersonnePort ouvert directement sur Internet, rien devant. C'est la valeur d'une installation neuve avec install.sh
une listeExactement ces IP ou plagesMandataire à 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 #

  1. Ouvre /opt/agora/.env.
  2. Remplace AGORA_TRUSTED_PROXIES=none par AGORA_TRUSTED_PROXIES= (vide).
  3. 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é ?