Web et API
app.py relie les routes Flask. Les points d’accès JSON publics se trouvent dans api_public.py, les pages dans templates/. Commencez ici pour suivre un parcours utilisateur ou un appel à l’API.
github.com/Open-LEG-ch/openleg
OpenLEG est le dépôt public de l’application destinée aux communautés électriques locales suisses. Le code est ouvert, les sources des données sont vérifiables et les secrets de production restent hors du dépôt public.
Application en fonctionnement
Cette capture provient de la démo réelle. Ouvrez le parcours, vérifiez son fonctionnement, puis lancez la même application en local.
Données
Les données des compteurs intelligents restent au sein de chaque CEL. Elles ne sont ni vendues ni agrégées pour des tiers.
Licence
Toute personne qui propose une version modifiée sur un réseau doit mettre le code source correspondant à disposition des utilisateurs conformément à la Licence .
Exploitation
Auto-hébergement sur votre propre infrastructure ou Hébergement sur openleg.ch sans exploitation technique à votre charge.
Installez OpenLEG directement si vous connaissez la procédure. L’installateur crée des clés d’accès locales et démarre l’application, PostgreSQL et Redis avec Docker. Vos mesures restent dans votre base PostgreSQL locale.
Pour macOS et Linux avec Docker Compose, curl et OpenSSL.
curl -fsSL https://openleg.ch/install.sh | bash
Téléchargez d’abord le script, lisez-le, puis lancez-le vous-même.
curl -fsSL https://openleg.ch/install.sh -o install-openleg.sh
less install-openleg.sh
bash install-openleg.sh
Pour une copie fixe du dépôt que vous vérifiez avant l’installation et les mises à jour.
git clone https://github.com/Open-LEG-ch/openleg.git
cd openleg
./scripts/openleg install
Il contient le code du produit, les tests, les modèles de pages, les modèles de données publics, l’API et l’intégration continue. Le dépôt doit être lisible, vérifiable et facile à dériver.
L’exploitation en production, l’inventaire des hôtes, les secrets, les notes d’incident et la stratégie interne restent privés. Le code de l’application demeure ainsi ouvert sans exposer l’infrastructure de production.
Routes, formulaires, profils communaux, classement et API JSON.
Données communales, installations photovoltaïques, tarifs, inscriptions et données d’audit.
Cache et états techniques temporaires.
TLS, domaines et proxy inverse devant l’application Flask.
Pour les utilisateurs techniques
Vous recherchez un bug ou préparez une pull request ? Voici les points d’entrée adaptés.
app.py relie les routes Flask. Les points d’accès JSON publics se trouvent dans api_public.py, les pages dans templates/. Commencez ici pour suivre un parcours utilisateur ou un appel à l’API.
database.py gère les connexions et les migrations. Les requêtes d’un même domaine se trouvent dans store/ et restent accessibles de manière compatible via database.py .
billing_engine.py traite les valeurs affectées par quart d’heure et produit un brouillon vérifiable. La consommation apparaît sous forme de consumer_chargepositive et l’injection sous forme de valeur négative producer_credit. store/billing.py enregistre la période, les prix et les postes. L’importation des mesures, l’affectation des membres, la commande de lancement d’un décompte et les documents de facturation définitifs ne forment pas encore un parcours continu.
Les tests se trouvent dans tests/. Toute nouvelle logique commence par un test en échec. Avant une pull request, scripts/tdd_cycle.sh gate doit s’exécuter jusqu’au bout. Les petites PR sont plus rapides à examiner.
Les présentations en anglais et en allemand du README contiennent les commandes de démarrage, le périmètre des dépôts et les liens vers l’architecture.
OpenLEG relie les données énergétiques publiques à une logique vérifiable. Le classement de l’utilisation du solaire utilise un export déterministe du registre des installations de l’OFEN, de l’OFEN Toitsolaire et des portraits régionaux de l’OFS.
data/public, importation via scripts/load_pv_data.pyUne commande sur votre propre matériel. Docker suffit, un Raspberry Pi convient pour commencer.
curl -fsSL https://openleg.ch/install.sh | bash
Vous gérez ensuite le boîtier avec une commande, importez vos mesures en local et connectez vos voisins par un réseau privé sans ports ouverts.
Ou manuellement à partir du code source :
git clone https://github.com/Open-LEG-ch/openleg.git
cd openleg
cp .env.example .env
docker compose up -d
Les communautés électriques locales ont besoin de confiance. Les communes, les habitants et les développeurs doivent pouvoir vérifier les données utilisées, les hypothèses des calculs et les possibilités d’exploitation de la plateforme. OpenLEG ne vend aucune donnée personnelle des habitants.
OpenLEG n’est lié à aucun gestionnaire de réseau en particulier. Le code et le modèle de données forment une infrastructure neutre, utilisable quel que soit le gestionnaire de réseau de distribution de la commune.