Structure d’une application
Chaque application IronFlock est un dossier versionné par Git contenant votre code applicatif et un répertoire de configuration .ironflock optionnel.
Structure du répertoire
my-app/
├── Dockerfile # Requis : définit l'image du conteneur
├── docker-compose.yml # Optionnel : configuration multi-conteneurs
├── main.py # Votre code applicatif (n'importe quel langage)
├── requirements.txt # Dépendances
└── .ironflock/
├── board-template.yml # Mise en page du tableau de bord
├── data-template.yml # Schéma de base de données pour la télémétrie
├── env-template.yml # Paramètres configurables par l'utilisateur
├── port-template.yml # Définitions des ports d'accès à distance
└── ai-template.yml # Définitions des agents IALes six parties d’une application
1. Code edge
La logique applicative principale. Ce code s’exécute dans un conteneur Docker sur l’appareil et gère la communication avec les capteurs, automates, caméras ou tout matériel connecté.
Le code edge peut être écrit dans n’importe quel langage de programmation — Python, JavaScript, Go, Rust, C++, ou tout ce qui s’exécute dans un conteneur Docker.
2. Board (Interface utilisateur)
Un tableau de bord en temps réel construit avec l’éditeur de board sans code. Les boards affichent les données de tous les appareils exécutant l’application dans un projet et se mettent à jour automatiquement.
La configuration du board est stockée dans board-template.yml.
3. Stockage de données
Chaque projet dispose de sa propre base de données physique (propulsée par TimescaleDB). Lorsqu’une application définit des tables dans data-template.yml, ces tables sont provisionnées automatiquement. Les données sont privées par projet — les développeurs n’ont pas accès aux données utilisateur.
4. Realm de messagerie
Lorsqu’elle est installée, l’application obtient un realm de messagerie privé connectant :
- Toutes les instances edge sur les appareils
- La base de données du projet
- L’interface board
La communication utilise WAMP via les SDK IronFlock.
5. Accès à distance
Définissez des ports et protocoles dans port-template.yml pour activer le tunneling sécurisé vers les services de l’appareil.
6. Agents IA
Exposez des agents IA spécifiques au domaine via ai-template.yml.
Stockage persistant sur les appareils
Par défaut, les données dans le conteneur sont perdues au redémarrage. Deux répertoires persistent :
| Chemin | Portée |
|---|---|
/data | Privé à cette application |
/shared | Partagé entre toutes les applications sur l’appareil |