chore: session backup 2026-06-01 final — TODO restructuré, état complet

This commit is contained in:
Eric FELIXINE
2026-05-30 08:49:31 -04:00
parent acdf250470
commit 9e933fea66

87
TODO.md
View File

@@ -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