Skip to Content
Accès à distanceConfiguration des ports

Configuration des ports

Définissez quels services votre application expose pour l’accès à distance en créant un fichier port-template.yml dans le répertoire .ironflock/.

Exemple de base

ports: - name: Web Interface port: 5000 main: true protocol: https

Cela rend le port 5000 disponible pour l’accès à distance. Les utilisateurs peuvent activer le tunnel depuis les paramètres de l’application sur leur appareil.

Exemple complet

ports: - name: Web Interface port: 1100 main: true protocol: http - name: Video Stream port: 1200 protocol: http - name: Remote Desktop port: 5900 protocol: tcp - name: LoRaWAN Gateway port: 1700 protocol: udp

Référence des champs

ChampRequisDescription
nameOuiÉtiquette affichée dans les paramètres de l’application
portOuiNuméro de port local sur lequel le service écoute
mainNonSi true, ce port est utilisé pour l’icône d’accès rapide
protocolNonhttp (par défaut), https, tcp ou udp

Variables d’environnement injectées

Pour chaque port que vous déclarez, la plateforme injecte des variables d’environnement dans les conteneurs de votre application afin que votre code puisse découvrir où le service est réellement accessible — sans coder les adresses en dur :

VariableDescription
DEVICE_LAN_IPL’adresse IP de l’appareil sur le réseau local
DEVICE_PORT_FOR_<port>Le port de l’appareil sur lequel votre port déclaré est publié sur le réseau local
REMOTE_PORT_FOR_<port>Le port public alloué par le serveur de tunnel tant que le tunnel est actif (TCP et UDP)
REMOTE_PORT_FOR_<port>_CLOUDLe port exposé sur Internet lorsque l’appareil fonctionne sur une instance IronFlock qui relaie les tunnels via le cloud (TCP et UDP)

<port> correspond au numéro de port que vous avez déclaré dans port-template.yml. Pour l’exemple Remote Desktop ci-dessus, l’application recevrait DEVICE_PORT_FOR_5900 et — tant que son tunnel est actif — REMOTE_PORT_FOR_5900.

Plusieurs applications peuvent s’exécuter simultanément sur le même appareil ; les ports déclarés sont donc automatiquement mappés vers un port libre de l’appareil. Composez toujours les adresses du réseau local à partir des valeurs injectées au lieu de présumer du port déclaré :

import os lan_ip = os.environ.get("DEVICE_LAN_IP") lan_port = os.environ.get("DEVICE_PORT_FOR_5900") # le service est accessible sur le réseau local à {lan_ip}:{lan_port}

Les variables sont définies au démarrage du conteneur. Les ports de tunnel peuvent changer pendant l’exécution de l’application (par exemple lors de la reconnexion d’un tunnel) ; les valeurs actuelles sont donc également tenues à jour sous forme de fichiers dans /data/env/<VARIABLE_NAME>.txt — les SDK IronFlock les lisent automatiquement.

Fonctionnement des protocoles

HTTP / HTTPS

Pour les services web. IronFlock crée une URL publique qui relaie le trafic vers le port local de l’appareil. Les utilisateurs ouvrent l’URL dans leur navigateur.

TCP

Pour des protocoles comme VNC (Remote Desktop) ou les connexions socket directes. IronFlock alloue un port distant sur le serveur de tunnel et l’expose à votre application via REMOTE_PORT_FOR_<port>.

UDP

Pour des protocoles comme la communication LoRaWAN ou les tunnels VPN. Similaire à TCP — un port distant est alloué et exposé via REMOTE_PORT_FOR_<port>.

Intégration dans les boards

Vous pouvez intégrer le tunnel d’accès à distance d’un appareil directement dans un board en utilisant le Widget Intégration. Cela crée une expérience fluide où les utilisateurs peuvent :

  • Surveiller les données globales de tous les appareils
  • Interagir avec des appareils individuels via des interfaces web intégrées

Le tout au sein du même tableau de bord.

La configuration de l’accès à distance dans port-template.yml n’active pas automatiquement les tunnels. Seuls les utilisateurs privilégiés peuvent activer ou désactiver les tunnels sur leurs appareils.

Last updated on