Files
smart-city-digital-twin-mar…/TODO.md
Eric FELIXINE b56749182e chore: update TODO — Honcho API deployed, Gitea Actions configured, Smart App Docker ready
Honcho:
- API UP on honcho.digitribe.fr (port 8089)
- Workspace 'hermes-agent' and session 'smart-city-session' created
- Memory storage working (messages stored via REST API)
- Hermes plugin configured in ~/.hermes/honcho.json
- Dialectic chat requires valid LLM API key

Gitea Actions:
- Runner docker-runner-01 registered and working
- SSH secrets configured (SERVER_HOST, SERVER_USER, SSH_PRIVATE_KEY)
- Workflow: lint + build + deploy

Smart App:
- Dockerfile web: multi-stage node + nginx
- Traefik: smartapp.digitribe.fr
- deploy.sh: web/docker/api/all
- LocalAI config removed (service no longer exists)
2026-06-02 06:57:56 -04:00

5.5 KiB

Smart City Digital Twin — TODO List

Dernière mise à jour : 2026-06-01 22:00 (session continue - smart app + ditto)

Complété (session 2026-06-01)

ID Tâche Détail
jupyterhub-fix JupyterHub DB path sqlite:////srv/jupyterhub/jupyterhub.sqlite (absolute path, 4 slashes)
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
jupyterhub-sudo sudo + eric user in container Dockerfile modifié, spawn vérifié fonctionnel
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, node.id=trino-lakehouse-01
trino-config config.properties nettoyé plugin.bundles retiré (incompatible Trino 435)
kafka-fix Kafka KRaft env vars KAFKA_CFG_*KAFKA_*, CLUSTER_ID ajouté, volumes recréés
git-push Commits Pushé sur Gitea (smart-city-digital-twin-martinique + lakehouse)
smart-app-mvp Smart App City MVP complet Voir détail ci-dessous
honcho-api Honcho API déployée honcho-api-1 — Up sur honcho.digitribe.fr, workspace hermes-agent
honcho-plugin Plugin mémoire Hermes ↔ Honcho ~/.hermes/honcho.json configuré, baseUrl http://127.0.0.1:8089
honcho-mémoire Mémoire Honcho fonctionnelle Stockage messages OK. Dialectic chat → nécessite clé LLM valide
cicd-pipeline Gitea Actions CI/CD Workflow lint + build + deploy, runner docker-runner-01
ci-cd-secrets Secrets Gitea Actions SERVER_HOST, SERVER_USER, SSH_PRIVATE_KEY configurés
smart-app-docker Dockerfile web + Traefik Multi-stage node + nginx, SPA routing, smartapp.digitribe.fr
smart-app-deploy Script de déploiement deploy.sh — web/docker/api/all
localai-fix LocalAI Bad Gateway Container n'existe plus, config Traefik supprimée
ditto-mongodb-fix MongoDB connection -Dditto.mongodb.uri dans JAVA_TOOL_OPTIONS
ditto-secrets Nouveaux secrets JWT/devops Générés aléatoirement, sauvegardés .env.ditto
ditto-official-images Gateway custom → latest eclipse/ditto-gateway:latest officiel

🔴 En cours

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

En attente

ID Tâche
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 GeoMesa + KeplerGL
p0-chirpstack ChirpStack login API gRPC-REST
p1-thingsboard Relancer ThingsBoard (si CPU dispo)
smart-app Phase 1 MVP React Native
p2-geoserver GeoServer + PostGIS couches Martinique

📝 Notes techniques 2026-06-01

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) — accessible via https://jupyter.digitribe.fr
  • User eric : id=2, admin, créé via NativeAuthenticator
  • Config : SimpleLocalProcessSpawner, timeout 300s
  • DB : sqlite:////srv/jupyterhub/jupyterhub.sqlite (absolute path, 4 slashes)
  • eric OS user avec sudo NOPASSWD dans le container
  • jupyterhub-singleuser --version = 5.3.0, jupyter-lab --version = 4.5.7

Kafka (KRaft)

  • apache/kafka:3.9.0 utilise KAFKA_* (pas KAFKA_CFG_* qui est Bitnami)
  • CLUSTER_ID=MkU3OEVBNTcwNTJENDM2Qk requis pour storage formatting
  • 2 brokers en mode KRaft (broker+controller), pas de ZooKeeper

Trino

  • Config dans /home/eric/lakehouse/docker-compose/config/trino/
  • node.id=trino-lakehouse-01 (pas _internal_)
  • plugin.bundles retiré de config.properties (incompatible Trino 435)

Infrastructure

  • 86+ conteneurs Docker
  • Kafka, Trino, JupyterHub = UP (fixes appliqués cette session)
  • Tous les autres services principaux = UP

Credentials

  • Contexus: iotevadmin / Digitribe972
  • OpenRemote: admin / Digitribe972
  • PostgreSQL Contexus: contexus / Digitribe972
  • Redis Contexus: Digitribe972
  • Telegraf InfluxDB: token=my-super-token, org=digitribe, bucket=smartcity
  • Grafana: admin / Digitribe972
  • Superset: admin / Digitribe972
  • Metabase: admin@digitribe.fr / Digitribe972
  • BunkerM MQTT: bunker / bunker
  • ChirpStack: admin / Digitribe972
  • ODK Central: efelixine@digitribe.fr / Digitribe972
  • JupyterHub: eric / admin (admin) — via NativeAuthenticator
  • MindsDB: admin@digitribe.fr / Digitribe972