Skip to Content
Sviluppo App IoTStruttura dell'App

Struttura dell’App

Ogni app IronFlock è una cartella versionata con Git che contiene il codice dell’applicazione e una directory di configurazione .ironflock opzionale.

Struttura della Directory

my-app/ ├── Dockerfile # Required: defines the container image ├── docker-compose.yml # Optional: multi-container setup ├── main.py # Your application code (any language) ├── requirements.txt # Dependencies └── .ironflock/ ├── board-template.yml # Dashboard layout ├── data-template.yml # Database schema for telemetry ├── env-template.yml # User-configurable parameters ├── port-template.yml # Remote access port definitions └── ai-template.yml # AI agent definitions

Le Sei Parti di un’App

1. Codice Edge

La logica principale dell’applicazione. Questo codice gira all’interno di un container Docker sul dispositivo e gestisce la comunicazione con sensori, PLC, telecamere o qualsiasi hardware connesso.

Il codice edge può essere scritto in qualsiasi linguaggio di programmazione — Python, JavaScript, Go, Rust, C++ o qualsiasi altro linguaggio che gira in un container Docker.

2. Dashboard (Interfaccia Utente)

Una dashboard in tempo reale costruita con il Board Editor no-code. Le dashboard visualizzano i dati di tutti i dispositivi che eseguono l’app in un progetto e si aggiornano automaticamente tramite il sistema di messaggistica.

La configurazione della dashboard è salvata in board-template.yml e viene generata automaticamente dall’editor.

3. Archiviazione Dati

Ogni progetto ha il proprio database fisico (basato su TimescaleDB). Quando un’app definisce tabelle in data-template.yml, quelle tabelle vengono provisionate automaticamente quando un utente installa l’app. I dati sono privati per progetto — gli sviluppatori non hanno accesso ai dati degli utenti.

4. Realm di Messaggistica

Una volta installata, l’app ottiene un realm di messaggi privato che connette:

  • Tutte le istanze dell’app sui dispositivi edge
  • Il database del progetto
  • La dashboard UI

La comunicazione usa WAMP (Web Application Messaging Protocol) tramite gli IronFlock SDK (ironflock-py per Python, ironflock-js per JavaScript).

5. Accesso Remoto

Definisci porte e protocolli in port-template.yml per abilitare il tunneling sicuro verso i servizi del dispositivo. Gli utenti possono poi abilitare/disabilitare questi tunnel per dispositivo. Vedi Accesso Remoto.

6. Agenti AI

Esponi agenti AI specifici del dominio tramite ai-template.yml che estendono l’assistente AI di IronFlock. Vedi Funzionalità AI.

Archiviazione Persistente sui Dispositivi

Per impostazione predefinita, i dati all’interno del container vengono persi al riavvio. Due directory persistono tra i riavvii:

PercorsoAmbito
/dataPrivato per questa app — le altre app non possono accedervi
/sharedCondiviso tra tutte le app sul dispositivo

Se usi Docker Compose, configura volumi persistenti nel tuo docker-compose.yml.

Accesso all’Hardware

Se la tua app interagisce con hardware locale (sensori, telecamere, dispositivi seriali), quei dispositivi sono montati in /dev all’interno del container.

Last updated on