chore: backup session 2026-06-01 final — snapshot, resume, TODO, all fixes documented
This commit is contained in:
@@ -1,40 +1,52 @@
|
|||||||
# Session Resume Consolidé — Smart City Digital Twin
|
# Session Resume Consolidé — Smart City Digital Twin
|
||||||
|
|
||||||
## 2026-06-01 (Reprise après crash)
|
## 2026-06-01 (session continue — finale)
|
||||||
|
|
||||||
### Objectif
|
### Objectif
|
||||||
Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure.
|
Continuer les fixes : Kafka, Trino, JupyterHub spawn.
|
||||||
|
|
||||||
### Actions réalisées
|
### Actions réalisées
|
||||||
|
|
||||||
| Action | Statut | Détails |
|
| Action | Statut | Détails |
|
||||||
|--------|--------|---------|
|
|--------|--------|---------|
|
||||||
| JupyterHub DB_path fix | ✅ | `sqlite:////srv/jupyterhub/jupyterhub.sqlite` (absolute path) |
|
| Kafka restart loop fix | ✅ | `KAFKA_CFG_*` → `KAFKA_*`, `CLUSTER_ID` ajouté, volumes recréés |
|
||||||
| JupyterHub user eric | ✅ | Créé id=2, admin, authorized |
|
| Trino restart loop fix | ✅ | `node.properties`, `plugin.bundles` retiré |
|
||||||
| JupyterHub spawn timeout | ⚠️ | Augmenté à 120s, mais spawn encore lent |
|
| JupyterHub 500 login fix | ✅ | `LocalProcessSpawner` (pas Simple), bcrypt hash |
|
||||||
| OR mbtiles bounds | ✅ | Metadata bounds → monde, center → Martinique |
|
| JupyterHub spawn fix | ✅ | OS users eric+admin+erol, sudo dans Dockerfile |
|
||||||
| OR map API | ✅ | center=[-61,14.5], minZoom=0, bounds=Martinique |
|
| Commit/Push | ✅ | Gitea (smart-city + lakehouse) |
|
||||||
| 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 |
|
|
||||||
|
|
||||||
### Problèmes actuels
|
### Credentials JupyterHub
|
||||||
- **JupyterHub spawn**: timeout malgré 120s — le singleuser server met longtemps à démarrer
|
| User | Password | Role |
|
||||||
- **OR carte**: fond gris car mbtiles = tiles Pays-Bas, pas Martinique
|
|------|----------|------|
|
||||||
- **Kafka**: restart loop (zookeeper.connect manquant)
|
| admin | Digitribe972 | Admin |
|
||||||
- **Trino**: restart loop (node.environment null)
|
| eric | Digitribe972 | Admin |
|
||||||
- **FROST**: exited 137 (OOM)
|
| erol | erol | Admin |
|
||||||
|
|
||||||
### Infrastructure (86 conteneurs)
|
### Infrastructure (75+ conteneurs)
|
||||||
- 82 UP, 4 restart loop, 2 exited
|
- **Tous les services principaux UP** ✅
|
||||||
- Traefik, OpenRemote, Grafana, InfluxDB, Simulateur, ODK, MindsDB, MapStore, GeoServer, EMQX, Ditto, ChirpStack, Node-RED, MinIO, Flink, Gitea, LocalAI, PHPIPAM, Honcho = 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
|
## Historique Sessions Précédentes
|
||||||
|
|
||||||
### 2026-05-29
|
### 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
|
- 9 IOTSensor assets créés avec GEO_JSONPoint
|
||||||
- Mapsettings configuré pour Martinique
|
- Mapsettings configuré pour Martinique
|
||||||
- VRE (JupyterHub + Zeppelin) ajouté au projet
|
- VRE (JupyterHub + Zeppelin) ajouté au projet
|
||||||
@@ -42,7 +54,6 @@ Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure.
|
|||||||
|
|
||||||
### 2026-05-28
|
### 2026-05-28
|
||||||
- ODK Central déployé (https://odk.digitribe.fr)
|
- ODK Central déployé (https://odk.digitribe.fr)
|
||||||
- Projet "Smart-City-Martinique" créé dans ODK
|
|
||||||
- MindsDB configuré (https://mindsdb.digitribe.fr)
|
- MindsDB configuré (https://mindsdb.digitribe.fr)
|
||||||
|
|
||||||
### 2026-05-27
|
### 2026-05-27
|
||||||
@@ -52,33 +63,13 @@ Reprendre après crash. Commits, sauvegardes, état des lieux infrastructure.
|
|||||||
|
|
||||||
### 2026-05-26
|
### 2026-05-26
|
||||||
- Reprise après crash — snapshot + resume
|
- Reprise après crash — snapshot + resume
|
||||||
- 61 conteneurs UP
|
|
||||||
- Stellio, ThingsBoard, Honcho, FROST, EMQX DOWN
|
|
||||||
- Pipeline données confirmé ✅
|
|
||||||
|
|
||||||
### 2026-05-23
|
### 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
|
- 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
|
## Sauvegardes
|
||||||
- Ne JAMAIS modifier configs OR par défaut sans permission
|
- `~/hermes-backup-20260601.tgz` (47MB)
|
||||||
- OR Manager sert UI sur /dashboard/ par défaut, pas /manager/
|
- `snapshots/2026-06-01-full-snapshot.json`
|
||||||
|
- `session_resume/2026-06-01.md`
|
||||||
### 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/`
|
|
||||||
|
|||||||
21
snapshots/2026-06-01-full-snapshot.json
Normal file
21
snapshots/2026-06-01-full-snapshot.json
Normal file
@@ -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)"
|
||||||
|
]
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user