Bêta 0.2.0-beta.2, pas encore pour un process critique. Voir la roadmap
PNeX logo
Documentation de la version en développement, pas encore publiée. Voir la version stable (0.1.0)

Architecture

Comment la pile PNeX s'emboîte

PNeX est un seul workspace Rust. Les mêmes types (pnex-core) compilent nativement pour le serveur et en WebAssembly pour l'app web — le contrat client-serveur est vérifié à la compilation. Le même code d'interface est aussi livré en apps natives pour Linux, Windows et Android.

Explorer l'architecture

Cliquez un bloc pour le détail, suivez une requête de bout en bout, ou allumez chaque niveau de sécurité.

CLIENTSEDGE · TLSCŒURDONNÉESHTTPS · WSSHTTPSWSS · mTLS :4443WSScerts/auth/v1/ · /wsOIDCsuperviseSQL · jobsingest · querylast valuesliveartifacts · mediaApp webDioxus · WASMApps nativesDioxus · same codeAppareilsESP32 · ESP8266Votre codePublic APIEdge TLSnginx:443 web · :4443 mTLSCertificatsCA · Let’s EncryptIdentitéRauthyServeur PNeXRust · Loco + SeaORMMoteur de flowsEdgeLink · RustBase de donnéesPostgreSQLTélémétrieOpenObserveCache liveValkeyStockage objetS3-compatible
Chiffré TLS sur le réseau Réseau privé interneDocker Compose · Helm 0.3.0 (edge devices dédié) · images Wolfi (Chainguard) · Raspberry Pi → cloud

Composants

ComposantTechnologieRôle
Edge TLSnginxHTTPS (443) pour navigateurs et apps natives, CA locale ou Let's Encrypt ; point d'entrée devices dédié (4443) en TLS mutuel, certificat client par appareil
ServeurLoco (Axum, SeaORM)API REST + WebSocket, workers, service de build firmware
Apps web, desktop & mobileDioxus (Rust)Tous les écrans depuis un seul code : web (WebAssembly), desktop Linux (x86_64, ARM64), desktop Windows (x86_64), Android
Runtime de flowsEdgeLink vendored, binaire Rust headlessExécute les flows visuels, supervisé et hot-reloadé par le serveur
TélémétrieOpenObserveMétriques et logs, isolation par organisation
Cache liveValkeyLectures instantanées de la dernière valeur, présence des appareils, mémoire partagée des flows
IdentitéRauthyOIDC, provisioning automatique (JIT)
Stockage objetTout stockage S3 compatible (RustFS fourni)Artefacts firmware, médiathèque, enregistrements caméra, documents
Vision & paroleModèles ONNX exécutés en Rust (tract), sherpa-onnx / whisper.cppDétection et suivi d’objets, entraînement de détecteurs personnalisés, transcription ; aucun Python nulle part
ThermophysiqueCoolProp (C++ vendored), in-processPropriétés de fluides dans les nœuds et diagrammes

Trois briques de données

PNeX s'appuie sur exactement trois briques de données : PostgreSQL (configuration, assets et file de jobs), OpenObserve (séries temporelles et logs) et Valkey (dernières valeurs live). La file et les workflows sont couverts par les workers Postgres et le runtime de flows. PostgreSQL est la seule base de données prise en charge.

Les fichiers (images firmware, médias, enregistrements, documents) vont dans un stockage objet compatible S3 : les installeurs fournissent RustFS, et tout autre service compatible S3 convient. L’ancien mode sur disque local est en cours de retrait : démarrez les nouvelles installations sur S3.

Séparation serveur / edge

Le serveur stocke, compile le firmware, caste les configurations — et n'écrit jamais un pin de sa propre initiative. Aujourd’hui les appareils tournent en mode connecté : les flows les pilotent via le serveur. Les appareils autonomes — config castée sur l’appareil, régulation locale qui survit aux coupures serveur ou internet — arrivent, suivis d’un mesh appareil-à-appareil. Voir flows.

Agents edge

Les ordinateurs et Raspberry Pi rejoignent PNeX comme agents edge, avec le même modèle que les cartes : à l'enrôlement, l'agent reçoit un certificat client (les précédents sont révoqués) et le nom du point d'entrée devices ; il s'y connecte en https uniquement, en TLS mutuel (rustls), puis ouvre le même lien Noise. Après une mise à jour au-delà de la 0.1.0-beta.7, ré-enrôlez chaque agent.

On this page