leukOS
leukOS est une plateforme open-source de pilotage local et de supervision distribuée. Le projet vise un déploiement à grande échelle, où chaque maison d'une ville ou d'un pays est équipée d'un boîtier leukOS connecté aux services locaux et au central opérateur.
Il s'inspire des grandes plateformes industrielles — Siemens S7, Beckhoff TwinCAT, Schneider EcoStruxure, Ignition SCADA — tout en restant libre, modulaire et auto-hébergeable.
Principe fondamental
Chaque node continue de fonctionner sans le serveur central.
- Un boîtier node est installé sur site (ex: maison). Il pilote localement relais, vannes et compteurs, exécute les automatismes et persiste son état.
- Chaque boîtier dispose d'une IHM locale (écran) pour allumer, éteindre et contrôler l'habitat, et peut aussi être piloté via une application mobile.
- Le boîtier peut appliquer, via relais et vannes digitales, des ordres d'activation ou de restriction de services (ex: eau, électricité) envoyés à distance par les opérateurs autorisés.
- Le boîtier peut aussi jouer un rôle d'accès réseau dans un internet/intranet territorial, selon la politique d'exploitation définie.
- Le central de supervision est le logiciel de contrôle dédié aux sociétés qui mettent à disposition ces services, avec vue parc, orchestration et audit.
Les grands blocs
| Bloc | Rôle | Technologie |
|---|---|---|
| Node (daemon) | Boîtier local : GPIO, relais, vannes, compteurs, scheduler, watchdog | C++17 |
| IHM Qt | Écran tactile local du boîtier | Qt6 / QML |
| OS | Image embarquée minimale et déterministe | Buildroot |
| Venus (gateway) | API GraphQL + serveur du frontend web | NestJS |
| Saturn (API centrale) | Backend REST opérateur : états, actions, inventaire, supervision | Go |
| Mercure (API logs) | Microservice d'accès aux logs (Elasticsearch) | Python / FastAPI |
| Interface web | Tableau de bord de supervision opérateur | Vue 3 + Vite |
| Broker MQTT node | Bus MQTT local du node | Mosquitto |
Comment lire cette documentation
La documentation est découpée en sections progressives :
- Vision & cas d'usage — pourquoi le projet existe.
- OS — les composants, la compilation Buildroot et le boot.
- Domotique — le hub Go, le modèle Home Assistant et l'interface Vue.js.
- Architecture — la vue d'ensemble, le réseau et les flux de données.
- Nodes — le daemon C++, l'API locale, MQTT et l'IHM Qt.
- Central — supervision de parc Saturn + Venus + Mercure, avec PostgreSQL, Elasticsearch et CoreDNS.
- Matériel — les cartes, alimentations et interfaces supportées.
- Network — l'architecture réseau et la sécurité plug-and-play.
- Commandes workspace — toutes les commandes unifiées depuis le
package.jsonracine.
:::tip Nouveau sur le projet ? Commencez par la vue globale de l'architecture puis suivez le parcours d'un ordre de bout en bout. :::