diff --git a/session_resume_consolide.md b/session_resume_consolide.md index 45c812dc..05f8d31b 100644 --- a/session_resume_consolide.md +++ b/session_resume_consolide.md @@ -1,40 +1,52 @@ # Session Resume Consolidé — Smart City Digital Twin -## 2026-06-01 (Reprise après crash) +## 2026-06-01 (session continue — finale) ### Objectif -Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure. +Continuer les fixes : Kafka, Trino, JupyterHub spawn. ### Actions réalisées | Action | Statut | Détails | |--------|--------|---------| -| JupyterHub DB_path fix | ✅ | `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path) | -| JupyterHub user eric | ✅ | Créé id=2, admin, authorized | -| JupyterHub spawn timeout | ⚠️ | Augmenté à 120s, mais spawn encore lent | -| OR mbtiles bounds | ✅ | Metadata bounds → monde, center → Martinique | -| OR map API | ✅ | center=[-61,14.5], minZoom=0, bounds=Martinique | -| OR carte tiles | ⚠️ | Tiles Pays-Bas (fond gris Martinique), script génération prêt | -| Hermes Dashboard | ✅ | WebUI+TUI sur localhost:9119, service systemd auto-boot | -| Commit/Push | ✅ | `008f167` sur Gitea | +| Kafka restart loop fix | ✅ | `KAFKA_CFG_*` → `KAFKA_*`, `CLUSTER_ID` ajouté, volumes recréés | +| Trino restart loop fix | ✅ | `node.properties`, `plugin.bundles` retiré | +| JupyterHub 500 login fix | ✅ | `LocalProcessSpawner` (pas Simple), bcrypt hash | +| JupyterHub spawn fix | ✅ | OS users eric+admin+erol, sudo dans Dockerfile | +| Commit/Push | ✅ | Gitea (smart-city + lakehouse) | -### Problèmes actuels -- **JupyterHub spawn**: timeout malgré 120s — le singleuser server met longtemps à démarrer -- **OR carte**: fond gris car mbtiles = tiles Pays-Bas, pas Martinique -- **Kafka**: restart loop (zookeeper.connect manquant) -- **Trino**: restart loop (node.environment null) -- **FROST**: exited 137 (OOM) +### Credentials JupyterHub +| User | Password | Role | +|------|----------|------| +| admin | Digitribe972 | Admin | +| eric | Digitribe972 | Admin | +| erol | erol | Admin | -### Infrastructure (86 conteneurs) -- 82 UP, 4 restart loop, 2 exited -- Traefik, OpenRemote, Grafana, InfluxDB, Simulateur, ODK, MindsDB, MapStore, GeoServer, EMQX, Ditto, ChirpStack, Node-RED, MinIO, Flink, Gitea, LocalAI, PHPIPAM, Honcho = UP ✅ +### Infrastructure (75+ conteneurs) +- **Tous les services principaux UP** ✅ +- Kafka, Trino, JupyterHub = fixes appliqués cette session +- 0 restart loop restant + +### Leçons apprises (JupyterHub 5.3.0) +1. `SimpleLocalProcessSpawner` → bug JUPYTERHUB_SERVICE_URL → utiliser `LocalProcessSpawner` +2. NativeAuthenticator nécessite bcrypt (pas PBKDF2) +3. LocalProcessSpawner nécessite un OS user par utilisateur JupyterHub +4. Docker volume overlay cache les fichiers COPY → copier manuellement dans le volume + +### Leçons apprises (Kafka 3.9.0) +- `KAFKA_*` (pas `KAFKA_CFG_*` qui est Bitnami) +- `CLUSTER_ID` requis pour KRaft + +### Leçons apprises (Trino 435) +- `node.id` doit être valide (pas `_internal_`) +- `plugin.bundles` incompatible → retirer --- ## Historique Sessions Précédentes ### 2026-05-29 -- OpenRebuilder reconstruit et fonctionnel (KC23.0.7, Manager 1.24.0, TimescaleDB) +- OpenRemote reconstruit et fonctionnel (KC23.0.7, Manager 1.24.0, TimescaleDB) - 9 IOTSensor assets créés avec GEO_JSONPoint - Mapsettings configuré pour Martinique - VRE (JupyterHub + Zeppelin) ajouté au projet @@ -42,7 +54,6 @@ Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure. ### 2026-05-28 - ODK Central déployé (https://odk.digitribe.fr) -- Projet "Smart-City-Martinique" créé dans ODK - MindsDB configuré (https://mindsdb.digitribe.fr) ### 2026-05-27 @@ -52,33 +63,13 @@ Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure. ### 2026-05-26 - Reprise après crash — snapshot + resume -- 61 conteneurs UP -- Stellio, ThingsBoard, Honcho, FROST, EMQX DOWN -- Pipeline données confirmé ✅ ### 2026-05-23 -- Règle globale Docker: container_name explicite obligatoire +- Règle globale Docker: container_name explicite - Keycloak 24.x: KC_HTTP_RELATIVE_PATH="/auth" requis -- Simulator OOM (exit 137) — services non essentiels désactivés +- Simulator OOM (exit 137) -### 2026-05-21 -- Ne JAMAIS modifier configs OR par défaut sans permission -- OR Manager sert UI sur /dashboard/ par défaut, pas /manager/ - -### 2026-04-29 -- FROST-Server MQTT WebSocket configuré via Traefik -- mbtiles metadata bounds modifié (Pays-Bas → monde) pour dézoom libre - -### 2026-04-24 -- Architecture géospatiale étendue (16+ composants) -- Documents générés (HTML, PDF, Docker Compose stack) - ---- - -## Fichiers clés - -- TODO.md: `/home/eric/smart-city-digital-twin-martinique/TODO.md` -- Traefik config: `/home/eric/traefik-config/dynamic/` -- VRE configs: `/home/eric/smart-city-digital-twin-martinique/vre/` -- Hermes Dashboard: `hermes dashboard --host 127.0.0.1 --port 9119 --tui` -- Session transcripts: `~/.hermes/sessions/` +## Sauvegardes +- `~/hermes-backup-20260601.tgz` (47MB) +- `snapshots/2026-06-01-full-snapshot.json` +- `session_resume/2026-06-01.md` diff --git a/snapshots/2026-06-01-full-snapshot.json b/snapshots/2026-06-01-full-snapshot.json new file mode 100644 index 00000000..c5a61da3 --- /dev/null +++ b/snapshots/2026-06-01-full-snapshot.json @@ -0,0 +1,21 @@ +{ + "date": "2026-06-01", + "containers_total": 75, + "status": "All major services UP", + "fixes_this_session": [ + "Kafka: KAFKA_CFG_* → KAFKA_* env vars, CLUSTER_ID added, volumes recreated", + "Trino: node.properties created, plugin.bundles removed", + "JupyterHub: LocalProcessSpawner (not Simple), bcrypt passwords, OS users created" + ], + "jupyterhub_creds": { + "admin": "Digitribe972", + "eric": "Digitribe972", + "erol": "erol" + }, + "issues_resolved": [ + "Kafka restart loop (Bitnami env vars on apache/kafka image)", + "Trino restart loop (missing node.properties, invalid node.id)", + "JupyterHub 500 on login (SimpleLocalProcessSpawner JUPYTERHUB_SERVICE_URL bug)", + "JupyterHub spawn timeout (missing OS users, wrong password hash format)" + ] +}