Skip to Content
Accesso RemotoConfigurazione Porte

Configurazione Porte

Definisci quali servizi la tua app espone per l’accesso remoto creando un file port-template.yml nella directory .ironflock/.

Esempio Base

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

Questo rende la porta 5000 disponibile per l’accesso remoto. Gli utenti possono abilitare il tunnel dalle impostazioni dell’app sul loro dispositivo.

Esempio Completo

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

Riferimento Campi

CampoObbligatorioDescrizione
nameEtichetta mostrata nelle impostazioni dell’app del dispositivo
portNumero di porta locale su cui il servizio è in ascolto
mainNoSe true, questa porta viene utilizzata per l’icona di accesso rapido nella lista app del dispositivo
protocolNohttp (predefinito), https, tcp o udp

Variabili d’Ambiente Iniettate

Per ogni porta che dichiari, la piattaforma inietta variabili d’ambiente nei container della tua app, così il tuo codice può scoprire dove il servizio è effettivamente raggiungibile — senza indirizzi codificati in modo fisso:

VariabileDescrizione
DEVICE_LAN_IPL’indirizzo IP del dispositivo sulla rete locale
DEVICE_PORT_FOR_<port>La porta del dispositivo su cui la porta dichiarata è pubblicata sulla rete locale
REMOTE_PORT_FOR_<port>La porta pubblica allocata dal server tunnel mentre il tunnel è attivo (TCP e UDP)
REMOTE_PORT_FOR_<port>_CLOUDLa porta esposta su Internet quando il dispositivo opera su un’istanza IronFlock che inoltra i tunnel attraverso il cloud (TCP e UDP)

<port> è il numero di porta dichiarato in port-template.yml. Per l’esempio del Desktop Remoto qui sopra, l’app riceverebbe DEVICE_PORT_FOR_5900 e — mentre il suo tunnel è attivo — REMOTE_PORT_FOR_5900.

Più app possono essere in esecuzione contemporaneamente sullo stesso dispositivo, quindi le porte dichiarate vengono mappate automaticamente su una porta libera del dispositivo. Componi sempre gli indirizzi di rete locale a partire dai valori iniettati invece di dare per scontata la porta dichiarata:

import os lan_ip = os.environ.get("DEVICE_LAN_IP") lan_port = os.environ.get("DEVICE_PORT_FOR_5900") # il servizio è raggiungibile sulla rete locale all'indirizzo {lan_ip}:{lan_port}

Le variabili vengono impostate all’avvio del container. Le porte dei tunnel possono cambiare mentre l’app è in esecuzione (ad esempio quando un tunnel si riconnette), quindi i valori correnti vengono inoltre mantenuti aggiornati come file in /data/env/<VARIABLE_NAME>.txt — gli SDK IronFlock li leggono automaticamente.

Come Funzionano i Protocolli

HTTP / HTTPS

Per i servizi basati sul web. IronFlock crea un URL pubblico che inoltra il traffico alla porta locale del dispositivo. Gli utenti aprono l’URL nel loro browser.

TCP

Per protocolli come VNC (Desktop Remoto) o connessioni socket dirette. IronFlock alloca una porta remota sul server tunnel e la espone alla tua app come REMOTE_PORT_FOR_<port>.

UDP

Per protocolli come la comunicazione LoRaWAN o i tunnel VPN. Simile a TCP — viene allocata una porta remota ed esposta come REMOTE_PORT_FOR_<port>.

Incorporamento nelle Bacheche

Puoi incorporare il tunnel di accesso remoto di un dispositivo direttamente in una bacheca usando il Widget Embed. Questo crea un’esperienza fluida in cui gli utenti possono:

  • Monitorare i dati globali da tutti i dispositivi
  • Interagire con i singoli dispositivi attraverso interfacce web incorporate

Tutto all’interno della stessa dashboard.

La configurazione dell’accesso remoto in port-template.yml non attiva automaticamente i tunnel. Solo gli utenti privilegiati possono abilitare o disabilitare i tunnel sui loro dispositivi.

Last updated on