Sous le capot

Caddy & HTTPS

Caddy est la porte d’entrée de Studio Local. Tout ce qui arrive de l’extérieur passe par lui, et rien d’autre n’est exposé. C’est aussi lui qui obtient et renouvelle votre certificat, sans que vous ayez à y penser.

Le problème que Caddy résout

Une régie complète, c’est plusieurs serveurs sur plusieurs ports : l’application sur l’un, la signalisation temps réel sur un autre, les flux ailleurs encore. Sans façade, il faudrait exposer chacun d’eux à Internet et donner à vos invités une adresse par service.

Ce serait ingérable, et surtout dangereux : chaque port ouvert est une porte à surveiller.

Un seul point d’entrée

Caddy présente une adresse unique en HTTPS et répartit lui-même les requêtes vers le bon service interne. Vos invités ne connaissent qu’une adresse ; les services internes, eux, ne sont jamais joignables directement depuis l’extérieur.

Pourquoi le HTTPS n’est pas optionnel

Ce n’est pas une précaution de confort : sans HTTPS, Studio Local ne peut pas fonctionner pour vos invités.

Les navigateurs refusent l’accès à la caméra et au microphone sur une page non sécurisée. C’est une règle absolue, sans dérogation possible, et elle est parfaitement justifiée : autoriser une page non chiffrée à filmer et écouter serait une aubaine pour n’importe quel intermédiaire réseau.

ContexteCaméra et micro
Votre propre machine (localhost)Autorisés — le navigateur considère la machine locale comme un contexte sûr.
Un invité, en HTTPRefusés — aucune caméra ne s’ouvrira, quelles que soient les autorisations accordées.
Un invité, en HTTPSAutorisés.
C’est l’explication de la panne la plus courante

« Ça marche chez moi mais pas chez mon invité » vient presque toujours de là. Chez vous, le navigateur tolère l’absence de HTTPS parce que c’est la machine locale. Chez l’invité, non. La chaîne HTTPS n’est donc pas un détail d’installation : c’est ce qui rend les invités possibles.

Le certificat, obtenu tout seul

Un site en HTTPS a besoin d’un certificat délivré par une autorité reconnue. Historiquement, c’était une démarche fastidieuse à refaire régulièrement.

Caddy automatise entièrement le processus : il demande le certificat, prouve à l’autorité que la machine est bien la vôtre, l’installe et le renouvelle avant expiration. Vous n’avez aucune commande à lancer, aucune date à surveiller.

Un certificat pour une adresse IP

Studio Local s’utilise le plus souvent sans nom de domaine : vos invités reçoivent un lien pointant vers l’adresse publique de votre connexion. Or les certificats pour adresses IP sont récents et ne sont délivrés que sous un régime particulier, à durée de vie courte. C’est ce régime que Studio Local demande — d’où des renouvellements plus fréquents, entièrement pris en charge.

Deux entrées, deux comportements

Caddy est configuré avec deux blocs distincts, qui ne font pas la même chose.

Entrée localeEntrée publique
Adresselocalhost et 127.0.0.1L’adresse publique de votre connexion
ChiffrementAucun — inutile en localHTTPS avec certificat automatique
Pour quiVous, à la régieVos invités, et les pages de sortie
Pourquoi pas de HTTPS en local

Parce qu’il n’apporterait rien : le trafic ne quitte pas la machine, et le navigateur considère déjà localhost comme sûr. Y ajouter du chiffrement compliquerait le démarrage sans rien protéger de plus.

Même un invité assis à côté de vous passe par l’adresse publique

L’entrée locale ne vaut que pour localhost, c’est-à-dire votre propre machine. Une personne sur votre Wi-Fi n’est pas localhost : le lien d’invitation qu’elle reçoit pointe vers l’adresse publique de votre connexion, et sa vidéo ressort par votre box pour y revenir aussitôt — ce qu’on appelle le retour en épingle.

Cela a trois conséquences concrètes :

  • votre box doit savoir faire ce demi-tour ; la plupart le font, quelques-unes non ;
  • les redirections des ports 80 et 443 sont nécessaires même pour un invité présent dans la pièce ;
  • une connexion Internet reste indispensable, ne serait-ce que pour maintenir le certificat à jour.

Autrement dit : Studio Local garde vos flux chez vous, mais il n’est pas conçu pour fonctionner sur un réseau totalement coupé du monde.

Le routage

Chaque bloc applique les mêmes trois règles, dans l’ordre. La première qui correspond gagne.

OrdreCe qui arriveDestination
1Une adresse commençant par /rtc/LiveKit — c’est le canal WebSocket de signalisation.
2Une adresse commençant par /livekit/LiveKit également, le préfixe étant retiré au passage.
3Tout le resteL’application Studio Local.
            https://<votre adresse>/…
                        │
                   ┌────▼────┐
                   │  Caddy  │  :443
                   └────┬────┘
          ┌─────────────┼─────────────┐
   /rtc/* │      /livekit/* │         │ tout le reste
          ▼             ▼             ▼
    ┌──────────┐  ┌──────────┐  ┌──────────┐
    │ LiveKit  │  │ LiveKit  │  │ Node.js  │
    │  :7880   │  │  :7880   │  │  :3000   │
    └──────────┘  └──────────┘  └──────────┘
Le WebSocket compte autant que les pages

La signalisation LiveKit est une connexion WebSocket maintenue ouverte pendant toute la session. Si Caddy la laissait tomber, l’invité verrait la page se charger normalement… puis rester bloqué sur « connexion… », sans jamais entrer. C’est pourquoi ces deux règles passent avant celle de l’application.

Les deux ports à ouvrir

Studio Local ouvre automatiquement la plupart des ports de votre box, en dialoguant avec elle. Deux font exception : 80 et 443.

PortRôle
80Sert à prouver à l’autorité de certification que la machine est bien la vôtre, et à rediriger vers HTTPS.
443Le trafic HTTPS lui-même — tout ce que voient vos invités.
Ces deux-là se redirigent à la main, une seule fois

Les box grand public refusent l’ouverture automatique des ports 80 et 443, parce que ce sont ceux de leur propre interface d’administration : un logiciel malveillant pourrait les détourner. La redirection manuelle, elle, reste autorisée. C’est une limite de la box, pas de Studio Local.

La procédure complète est décrite dans le guide de configuration réseau fourni avec le logiciel. En résumé : dans l’interface de votre box, section NAT/PAT, créez deux règles en TCP pointant vers l’adresse locale de votre PC.

N’ouvrez jamais les autres ports

Les ports 3000, 3001 et 7880 ne doivent pas être exposés à Internet. Ce sont les services internes, que Caddy protège précisément en les gardant hors d’atteinte. Les ouvrir contournerait le HTTPS, la seule couche qui chiffre le trafic de vos invités — et exposerait directement des services conçus pour n’être joints qu’en local.

Ce que Caddy n’expose pas

Caddy dispose normalement d’une interface d’administration permettant de le reconfigurer à distance. Elle est désactivée dans Studio Local.

La raison est simple : cette interface n’a d’intérêt que dans une infrastructure pilotée par des outils d’automatisation. Ici, la configuration est fixe et connue. La laisser active n’apporterait aucun service et ajouterait une surface d’attaque sur une machine qui, par définition, est exposée à Internet pendant vos directs.

Pourquoi Caddy plutôt qu’un autre

CritèreCe qui a compté
HTTPS par défautLe certificat est obtenu et renouvelé sans intervention. Chez les alternatives classiques, c’est un outil et une tâche planifiée en plus.
Un seul fichierCaddy s’installe en un exécutable, sans dépendances système. Il se distribue avec le logiciel.
Configuration lisibleQuelques lignes compréhensibles, là où d’autres demandent des dizaines de directives.
WebSocket sans réglageLes connexions maintenues passent correctement sans configuration particulière — décisif pour la signalisation temps réel.

Dépannage

SymptômeCause probableCe qu’il faut faire
L’invité voit un avertissement de sécuritéLe certificat n’a pas pu être obtenu.Vérifiez que le port 80 est bien redirigé — c’est par lui que passe la vérification.
La page de l’invité ne se charge pas du toutLe port 443 n’est pas redirigé, ou Caddy n’a pas démarré.Contrôlez les deux règles de votre box, puis la fenêtre de démarrage.
La page se charge mais reste sur « connexion… »Le WebSocket n’aboutit pas.Souvent un VPN ou un filtre réseau qui coupe les connexions maintenues.
L’invité n’a pas de caméra du toutIl est arrivé en HTTP et non en HTTPS.Régénérez le lien d’invitation depuis l’onglet Invite.
Caddy refuse de démarrerUn autre serveur web occupe déjà le port 80 ou 443.Arrêtez-le, ou identifiez-le avant de relancer Studio Local.
Ça marchait, et plus depuis peuVotre adresse publique a changé.Régénérez le lien d’invitation : l’ancienne adresse ne pointe plus chez vous.
Un invité sur votre propre Wi-Fi n’arrive pas à se connecterVotre box ne sait pas renvoyer vers elle-même une requête destinée à votre adresse publique.Vérifiez d’abord les redirections 80 et 443 ; si elles sont bonnes, votre box ne gère pas le retour en épingle.
L’adresse publique change chez la plupart des opérateurs

Elle est réattribuée à chaque redémarrage de la box, parfois plus souvent. Un lien d’invitation envoyé la semaine dernière peut donc ne plus fonctionner. Prenez l’habitude de générer le lien le jour même — Studio Local le construit toujours à partir de l’adresse en cours.

À retenir