From 9e933fea665e03bac073f899ffc3829df4d3979d Mon Sep 17 00:00:00 2001 From: Eric FELIXINE Date: Sat, 30 May 2026 08:49:31 -0400 Subject: [PATCH] =?UTF-8?q?chore:=20session=20backup=202026-06-01=20final?= =?UTF-8?q?=20=E2=80=94=20TODO=20restructur=C3=A9,=20=C3=A9tat=20complet?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- TODO.md | 87 +++++++++++++++++++++++++++++++++------------------------ 1 file changed, 51 insertions(+), 36 deletions(-) diff --git a/TODO.md b/TODO.md index 8d9a73ca..8314b810 100644 --- a/TODO.md +++ b/TODO.md @@ -1,54 +1,69 @@ # Smart City Digital Twin — TODO List -> Dernière mise à jour : 2026-06-01 07:00 +> Dernière mise à jour : 2026-06-01 17:00 (fin de session) -## ✅ Complété (cette session 2026-06-01) +## ✅ Complété (session 2026-06-01) -| ID | Tâche | -|----|-------| -| jupyterhub-fix | JupyterHub DB path fix (absolute path) → healthy ✅ | -| jupyterhub-user | User eric créé + autorisé dans JupyterHub (admin) | -| or-map-bounds | OR mbtiles metadata bounds → monde, center → Martinique ✅ | -| or-map-verify | OR API confirmée: center=[-61,14.5], minZoom=0, bounds=Martinique | -| hermes-dashboard | Hermes Dashboard WebUI + TUI chat activé (localhost:9119, auto-boot) | -| git-push | Commit 008f167 pushé sur Gitea | +| ID | Tâche | Détail | +|----|-------|--------| +| jupyterhub-fix | JupyterHub DB path | `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path) | +| jupyterhub-rebuild | Rebuild Dockerfile | Supprimé double-nested `/srv/jupyterhub/srv/jupyterhub` | +| jupyterhub-spawner | Spawner config | `SimpleLocalProcessSpawner`, timeout 300s | +| jupyterhub-user | User eric | Créé id=2, admin, authorized | +| hermes-dashboard | Dashboard WebUI+TUI | systemd service, localhost:9119, auto-boot | +| or-mbtiles-metadata | Bounds monde + center Martinique | `sqlite3` UPDATE sur metadata | +| or-map-settings | mapsettings.json vérifié | center=[-61,14.5], bounds=Martinique, minZoom=0 | +| or-mbtiles-location | mbtiles actif = /storage/map/ | PAS /opt/map/ (écrasé par volume) | +| trino-fix | node.properties créé | `node.environment=production` — restart needed | +| skill-update | openremote-overview | Section Map & Tile Configuration ajoutée | +| git-push | Commits | `acdf250` pushé sur Gitea | ## 🔴 Bloqué / En cours -| ID | Tâche | Raison | -|----|-------|--------| -| jupyterhub-spawn | Spawn user eric timeout (30s→120s fixé, mais singleuser lent) | Container resource limit? | -| or-tiles | Carte OR fond gris sur Martinique | mbtiles contient tiles Pays-Bas, pas Martinique | -| kafka-fix | Kafka restart loop | `zookeeper.connect` manquant | -| trino-fix | Trino restart loop | `node.environment` null | +| ID | Tâche | Raison | Prochaine action | +|----|-------|--------|------------------| +| or-map-bounds | MapService retourne bounds Pays-Bas | Bug MapResourceImpl.java: mbtiles metadata bounds prioritaire sur mapsettings.json | Générer vrai mbtiles MVT Martinique OU patcher code source OR | +| jupyterhub-spawn | Spawn eric timeout | Container resource limit? | Augmenter CPU/RAM container OU debug logs | +| kafka-restart | Kafka restart loop | Volumes corrimpus (ancien ZK data) | SUPPRIMER volumes kafka-1-data + kafka-2-data, recréer | +| trino-restart | Trino restart loop | node.properties créé mais pas appliqué | `docker restart trino` | ## ⏳ En attente | ID | Tâche | |----|-------| -| p1-or-restart | Vérifier OR map tiles après remplacement mbtiles Martinique | +| or-mbtiles-martinique | Générer mbtiles MVT PBF pour Martinique (tippecanoe depuis GeoJSON filtré) | +| p1-or-map | Vérifier carte Martinique après fix bounds | | p1-contexus-60 | Configurer les 60 devices Contexus | -| p3-analyse | Analyse: GeoMesa + KeplerGL | -| p1-ngsi | NGSI-LD: validation pipeline (basse priorité) | -| p0-chirpstack | ChirpStack: login API gRPC-REST | -| p1-thingsboard | Relayer ThingsBoard (si CPU dispo) | -| smart-app Phase 1 | MVP React Native (dashboard, carte, signalement) | -| smart-app Phase 2 | Transport, Beckn integration, chatbot RAG | -| smart-app Phase 3 | AI Agents, prédictions, réalité augmentée | +| p3-analyse | GeoMesa + KeplerGL | +| p0-chirpstack | ChirpStack login API gRPC-REST | +| p1-thingsboard | Relancer ThingsBoard (si CPU dispo) | +| smart-app Phase 1 | MVP React Native | -## 📝 Notes 2026-06-01 +## 📝 Notes techniques 2026-06-01 -- **86 conteneurs Docker** au total -- **JupyterHub** : https://jupyter.digitribe.fr — user eric/admin créé, spawn lent -- **OpenRemote** : https://openremote.digitribe.fr — carte centrée Martinique, dézoom libre (minZoom=0), mais tiles Pays-Bas (fond gris) -- **Hermes Dashboard** : http://127.0.0.1:9119 (SSH tunnel) — WebUI + TUI chat, auto-boot -- **OR mbtiles** : metadata bounds monde OK, mais contenu = vector tiles Pays-Bas. Script `scripts/generate_martinique_mbtiles.py` prêt pour génération -- **Pipeline données** : Simulateur → Mosquitto/BunkerM → Telegraf → InfluxDB → Grafana ✅ -- **Grafana** : Dashboard smartcity-martinique-complete v7 ✅ -- **Superset** : https://superset.digitribe.fr ✅ -- **Metabase** : https://metabase.digitribe.fr ✅ -- **ODK Central** : https://odk.digitribe.fr ✅ -- **MindsDB** : https://mindsdb.digitribe.fr ✅ +### OpenRemote mbtiles — Points critiques +- Fichier actif : `/storage/map/mapdata.mbtiles` (volume Docker), PAS `/opt/map/` +- OR 1.24.0 ne sert que du **PBF vectoriel** — PNG raster = 404 +- Bug : MapService.java donne priorité aux bounds du mbtiles metadata sur mapsettings.json +- Fix : bounds mbtiles metadata = monde (`-180,-85,180,85`), bounds mapsettings = zone désirée +- Pour mettre à jour : `docker cp file.mbtiles openremote-manager:/storage/map/mapdata.mbtiles` + +### JupyterHub +- Port : 8000 (pas 8080) +- User eric : id=2, admin, password=Digitribe972 (hash bcrypt dans users_info) +- Config : `SimpleLocalProcessSpawner`, timeout 300s +- DB : `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path, 4 slashes) + +### Hermes Dashboard +- Service : `hermes-dashboard.service` (systemd user) +- URL : `http://localhost:9119` (accès via SSH tunnel `-L 9119:127.0.0.1:9119`) +- TUI chat intégré dans l'onglet Chat du dashboard + +### Infrastructure +- 86 conteneurs Docker au total +- Traefik, OpenRemote, Grafana, InfluxDB, Simulateur, ODK, MindsDB, MapStore, GeoServer, EMQX, Ditto, ChirpStack, Node-RED, MinIO, Flink, Gitea, LocalAI, PHPIPAM, Honcho = UP ✅ +- Kafka, Trino = restart loop +- JupyterHub = UP mais spawn lent ## Credentials