Skip to Content

App-Struktur

Jede IronFlock-App ist ein Git-versionierter Ordner, der Ihren Anwendungscode und ein optionales .ironflock-Konfigurationsverzeichnis enthält.

Verzeichnisaufbau

my-app/ ├── Dockerfile # Erforderlich: definiert das Container-Image ├── docker-compose.yml # Optional: Multi-Container-Setup ├── main.py # Ihr Anwendungscode (beliebige Sprache) ├── requirements.txt # Abhängigkeiten └── .ironflock/ ├── board-template.yml # Dashboard-Layout ├── data-template.yml # Datenbankschema für Telemetrie ├── env-template.yml # Benutzerkonfigurierbare Parameter ├── port-template.yml # Remote-Access-Port-Definitionen └── ai-template.yml # KI-Agenten-Definitionen

Die sechs Teile einer App

1. Edge-Code

Die zentrale Anwendungslogik. Dieser Code läuft in einem Docker-Container auf dem Gerät und übernimmt die Kommunikation mit Sensoren, SPS-Steuerungen, Kameras oder anderer angeschlossener Hardware.

Der Edge-Code kann in jeder Programmiersprache geschrieben werden — Python, JavaScript, Go, Rust, C++ oder alles andere, was in einem Docker-Container läuft.

2. Board (Benutzeroberfläche)

Ein Echtzeit-Dashboard, erstellt mit dem No-Code Board-Editor. Boards zeigen Daten aller Geräte an, die die App in einem Projekt verwenden, und aktualisieren sich automatisch über das Messaging-System.

Die Board-Konfiguration wird in board-template.yml gespeichert und vom Editor automatisch generiert.

3. Datenspeicherung

Jedes Projekt hat seine eigene physische Datenbank (basierend auf TimescaleDB). Wenn eine App Tabellen in data-template.yml definiert, werden diese automatisch bereitgestellt, sobald ein Benutzer die App installiert. Daten sind pro Projekt privat — Entwickler haben keinen Zugriff auf Benutzerdaten.

4. Messaging Realm

Bei der Installation erhält die App einen privaten Message Realm, der Folgendes verbindet:

  • Alle App-Instanzen auf Edge-Geräten
  • Die Projektdatenbank
  • Die Board-Benutzeroberfläche

Die Kommunikation erfolgt über WAMP (Web Application Messaging Protocol) mithilfe der IronFlock-SDKs (ironflock-py für Python, ironflock-js für JavaScript).

5. Remote Access

Definieren Sie Ports und Protokolle in port-template.yml, um sicheres Tunneling zu Gerätediensten zu ermöglichen. Benutzer können diese Tunnel dann pro Gerät aktivieren/deaktivieren. Siehe Remote Access.

6. KI-Agenten

Stellen Sie domänenspezifische KI-Agenten über ai-template.yml bereit, die den IronFlock-KI-Assistenten erweitern. Siehe KI-Funktionen.

Persistenter Speicher auf Geräten

Standardmäßig gehen Daten innerhalb des Containers bei einem Neustart verloren. Zwei Verzeichnisse bleiben über Neustarts hinweg erhalten:

PfadGeltungsbereich
/dataPrivat für diese App — andere Apps können nicht darauf zugreifen
/sharedFür alle Apps auf dem Gerät gemeinsam nutzbar

Wenn Sie Docker Compose verwenden, konfigurieren Sie persistente Volumes stattdessen in Ihrer docker-compose.yml.

Hardware-Zugriff

Wenn Ihre App mit lokaler Hardware (Sensoren, Kameras, serielle Geräte) interagiert, sind diese Geräte unter /dev im Container eingebunden.

Last updated on