# Smart City Digital Twin — Documentation Infrastructure > Dernière mise à jour : 2026-05-17 20:00 ## Architecture Géospatiale ### Services déployés | Service | URL | Statut | Credentials | |---------|-----|--------|-------------| | GeoServer | https://geoserver.digitribe.fr | ✅ UP | admin / Digitribe972 | | PostGIS dédié | postgis-smartcity:5432 | ✅ UP | smartcity / SmartCity972 | | MapStore | https://mapstore.digitribe.fr | ✅ UP | - | ### GeoServer #### Workspace: `Digitribe` - **Data Store**: `postgis-smartcity` → PostgreSQL/PostGIS dédié - **Couche**: `sensors` — 55 capteurs IoT importés depuis OpenRemote - **WMS/WFS**: Activés via le plugin GeoMesa (à installer) #### Données importées 55 capteurs IoT depuis OpenRemote (table `openremote.asset`, type `IOTSensor`) : - Types : traffic, airquality, parking, noise, weather, light - Coordonnées GPS : lat/lon (EPSG:4326) - Table PostGIS : `public.sensors` (id, name, type, location, attributes) ### PostGIS dédié - **Conteneur**: postgis-smartcity - **Image**: postgis/postgis:15-3.4 - **Port host**: 5433 - **Base**: smartcity - **Schéma**: public - **Table sensors**: 55 lignes, index GIST sur location ### MapStore - **URL**: https://mapstore.digitribe.fr - **CORS**: GeoServer ajouté - **Couche GeoServer**: sensors accessible via WMS ## Services Bloqués ### OpenRemote Agents MQTT - **Problème**: API REST retourne 403 malgré tous les tokens Keycloak - **Cause**: OpenRemote a son propre système d'authorization indépendant - **Solution**: Se connecter manuellement via un navigateur réel ### Ditto Digital Twin - **Problème**: MongoDB localhost hardcodé dans le JAR Ditto 3.8.12 - **Cause**: Les variables d'environnement MONGO_HOST ne sont pas reconnues - **Solution**: Modifier le JAR ou utiliser un hostname localhost → MongoDB ### Prometheus + Grafana - **Problème**: Réseau interne inaccessible depuis le conteneur Prometheus - **Solution**: Reconfigurer le réseau ou utiliser les endpoints exposés ### GeoMesa + KeplerGL - **GeoMesa**: Installation complexe (Maven, binaires pré-construits nécessaires) - **KeplerGL**: Image Docker incomplète, build npm trop long - **Solution**: Prévoir une session dédiée pour l'installation ## Fichiers de configuration - `docker-compose.postgis.yml` — PostGIS dédié - `docker-compose.kepler.yml` — KeplerGL (non fonctionnel) - `docker-compose.ditto.yml` — Ditto (MongoDB à corriger) - `traefik-config/dynamic/routes.yml` — GeoServer ajouté au CORS MapStore ## Prochaines étapes 1. GeoMesa : télécharger les binaires pré-construits (geomesa-gt-postgis) 2. KeplerGL : build Docker multi-stage ou image officielle 3. OpenRemote : connexion manuelle via navigateur réel 4. Ditto : corriger la config MongoDB