fix: telegraf containers names + openremote pg image + session snapshot 2026-05-25

- telegraf.conf: fix Mosquitto/BunkerM container names (hyphens not underscores)
- tegraf.conf: comment out BunkerM consumer (auth fails, simulator not sending)
- openremote/docker-compose.yml: switch PG image to timescaledb-ha:pg15 (fixes timescaledb_toolkit crash)
- Add session_resume + architecture snapshot 2026-05-25
- Update TODO.md with current status
This commit is contained in:
Eric FELIXINE
2026-05-25 14:13:39 -04:00
parent eb97f2a7dd
commit 6d1d9c8620
14 changed files with 2163 additions and 119 deletions

View File

@@ -0,0 +1,31 @@
# Smart City Monitoring Report - 2026-05-22
**Timestamp:** 2026-05-22 00:50:30
## Summary
⚠️ **9 issue(s) detected** - Critical systems are partially unavailable
## Container Status
| Container | Status |
|-----------|--------|
| openremote_manager_1 | 🛑 DOWN |
| openremote_keycloak_1 | 🛑 DOWN |
| stellio-api-gateway | 🛑 DOWN |
| smart-city-prometheus-brokers | 🛑 DOWN |
## Endpoint Status
| Service | URL | Status |
|---------|-----|--------|
| OpenRemote | https://openremote.digitribe.fr | 🌐 DOWN (HTTP 502) |
| Orion-LD | http://fiware-gis-quickstart-orion-1:1026/version | 🌐 DOWN (HTTP 000) |
| Stellio | https://stellio.digitribe.fr | 🌐 DOWN (HTTP 502) |
| FROST | http://frost_http-web-1:8080/FROST-Server/core/v1.0/info | 🌐 DOWN (HTTP 000) |
## Network
- 🔌 Network issue: Traefik → OpenRemote
## Recommendations
1. Restart critical containers: `docker-compose up -d`
2. Check Traefik logs for routing issues
3. Verify network connectivity between services
4. Review container health checks

30
TODO.md
View File

@@ -1,6 +1,6 @@
# Smart City Digital Twin — TODO List
> Dernière mise à jour : 2026-05-20 04:15 (v3)
> Dernière mise à jour : 2026-05-25 18:50
## ✅ Complété
| ID | Tâche |
@@ -15,34 +15,44 @@
| or-agent | Agent MQTT créé dans OpenRemote |
| contexus-mqtt | Driver MQTT configuré et recevant des données |
| contexus-devices | 7 devices créés dans Contexus |
| telegraf-fix | Noms containers corrigés + BunkerM désactivé |
| or-pg-fix | Image PostgreSQL changée → timescaledb-ha:pg15 |
## 🔴 En cours
| ID | Tâche | Notes |
|----|-------|-------|
| p1-or-restart | Redémarrer OpenRemote | PG recréé, à relancer |
| p1-telegraf | Vérifier données InfluxDB | Telegraf fixé, pipeline à valider |
| p1-grafana | Vérifier dashboard Smart City | Dépend de InfluxDB |
## 🔴 Bloqué
| ID | Tâche | Raison |
|----|-------|--------|
| p1-or-map | Affichage des points sur la carte OpenRemote | Points ne s'affichent pas malgré assets + agentLink |
| p1-or-map | Affichage points carte OpenRemote | En attente restart |
| p4-ditto | Ditto.digitribe.fr | MongoDB localhost hardcodé |
| p1-prometheus | Prometheus + Grafana | Réseau interne inaccessible |
| p3-kepler | KeplerGL | Image Docker incomplète |
| p3-geomesa | GeoMesa | Installation complexe |
## ⏳ En attente
| ID | Tâche |
|----|-------|
| p1-bunkerm-telegraf | Réactiver BunkerM dans Telegraf (port 1883 ou 1900 ?) |
| 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) |
## 📝 Notes 2026-05-20
## 📝 Notes 2026-05-25
- **OpenRemote** : Image PG changée (timescaledb-ha:pg15), container recréé
- **Telegraf** : Fixé — noms containers corrigés + BunkerM commenté
- **Simulator** : 60 capteurs, MQTT OK 1/2 (EMQX OK, Mosquitto ?)
- **Pipeline** : Simulateur → EMQX/Mosquitto → Telegraf → InfluxDB → Grafana
- **Contexus** : https://contexus.digitribe.fr — login: iotevadmin / Digitribe972
- **OpenRemote** : https://openremote.digitribe.fr/manager/
- **Agent MQTT** : mqtt-agent-1 créé dans OpenRemote (type: Agent)
- **Assets IOTSensor** : 5 créés avec agentLink → mqtt-agent-1
- **Contexus MQTT** : Driver EMQX connecté et recevant des données
- **Contexus Devices** : 7 devices créés (airquality, traffic, weather, parking, noise, light, waterquality)
- **Problème carte** : Les points ne s'affichent pas sur la carte OpenRemote malgré les assets et l'agentLink. Il faut peut-être redémarrer le Manager ou vérifier la configuration de l'agent MQTT.
## Credentials
- **Contexus**: iotevadmin / Digitribe972
- **OpenRemote**: admin / Digitribe972
- **PostgreSQL Contexus**: contexus / Digitribe972
- **Redis Contexus**: Digitribe972
- **Telegraf InfluxDB**: token=my-super-token, org=digitribe, bucket=smartcity

View File

@@ -2,6 +2,7 @@ version: "3.8"
services:
chirpstack:
container_name: smart-city-chirpstack
image: chirpstack/chirpstack:latest
command: -c /etc/chirpstack
restart: unless-stopped
@@ -22,6 +23,7 @@ services:
- smartcity-shared
chirpstack-rest-api:
container_name: smart-city-chirpstack-rest-api
image: chirpstack/chirpstack-rest-api:4
restart: unless-stopped
command: --server chirpstack:8080 --bind 0.0.0.0:8090 --insecure

View File

@@ -4,6 +4,7 @@
services:
pulsar-distribution:
container_name: smart-city-pulsar-distribution
environment:
- PULSAR_HOST=pulsar
- PULSAR_PORT=6650

View File

@@ -11,6 +11,7 @@ version: "3.8"
services:
tts-postgres:
container_name: smart-city-tts-postgres
image: postgres:14
restart: unless-stopped
environment:
@@ -22,6 +23,7 @@ services:
networks:
- smartcity-shared
tts-redis:
container_name: smart-city-tts-redis
image: redis:7
command: redis-server --appendonly yes
restart: unless-stopped
@@ -30,6 +32,7 @@ services:
networks:
- smartcity-shared
tts-stack:
container_name: smart-city-tts-stack
image: thethingsnetwork/lorawan-stack:latest
entrypoint: ttn-lw-stack -c /config/ttn-lw-stack-docker.yml
command: start

View File

@@ -24,28 +24,34 @@ services:
- traefik-public
- openremote_default
environment:
# MQTT Brokers - ALL enabled
# MQTT Brokers
- ENABLE_EMQX=1
- ENABLE_MOSQUITTO=1
- ENABLE_BUNKER=1
- ENABLE_BUNKER=0
- EMQX_HOST=emqx_emqx_1
- EMQX_PORT=1883
- MOSQUITTO_HOST=smart-city-digital-twin-martinique-mosquitto-1
- MOSQUITTO_PORT=1883
- BUNKERM_HOST=bunkerm-bunkerm-1
- BUNKERM_PORT=1900
# Context Brokers (DESACTIVE - tout passe par les IoT Agents via MQTT)
- ENABLE_ORION=false
- ENABLE_STELLIO=false
- ENABLE_FROST=false
# Databases
- ENABLE_INFLUX=true
# Databases (DESACTIVE - Telegraf s'occupe de InfluxDB)
- ENABLE_INFLUX=false
- INFLUX_URL=http://smart-city-influxdb:8086
# OpenRemote
- ENABLE_OPENREMOTE=1
- OR_URL=http://openremote_manager_1:8080
- ENABLE_OPENREMOTE=0
- OR_MQTT_USER=admin
- OR_MQTT_PASS=Digitribe972
- OR_URL=http://openremote-manager:8080
- OR_REALM=master
- OR_TOKEN_REALM=master
- OR_ADMIN_USER=admin
- OR_ADMIN_PASS=Digitribe972
- OR_CLIENT_SECRET=0oQjzTfiEELYmj5jFwT4iIuWUDtQDvVa
# Pulsar (Disabled for demo stability)
# Pulsar (Disabled for stability)
- ENABLE_PULSAR=false
# Redpanda (Disabled)
- ENABLE_REDPANDA=false
@@ -66,7 +72,7 @@ services:
- traefik-public
- openremote_default
environment:
- OR_URL=http://openremote_manager_1:8080
- OR_URL=http://openremote-manager:8080
- OR_ADMIN_USER=admin
- OR_ADMIN_PASS=Digitribe972
- OR_REALM=master

View File

@@ -0,0 +1,48 @@
# Session Resume - 2026-05-25
## Objectifs
Diagnostiquer et corriger : OpenRemote Bad Gateway + Grafana dashboard sans données.
## Diagnostic effectué
### Problème 1 : OpenRemote Bad Gateway (CRITIQUE)
- **Cause** : `timescaledb_toolkit` extension PostgreSQL manquante
- Image `timescale/timescaledb:latest-pg15` (Alpine) n'inclut PAS `timescaledb_toolkit`
- Flyway tente de créer l'extension au démarrage → échoue → Manager crash en boucle
- **Action** : Changement d'image PostgreSQL → `timescale/timescaledb-ha:pg15` (Debian, inclut timescaledb_toolkit)
- **Statut** : Image téléchargée (2.25GB), container PG recréé (volume supprimé et recréé)
- **À reprendre** : `cd /home/eric/openremote && docker-compose up -d postgresql` puis `docker-compose up -d`
### Problème 2 : Telegraf crash en boucle (CORRIGÉ)
- **Cause 1** : Noms de containers incorrects dans `telegraf.conf`
- `smart-city-mosquitto` → devrait être `smart-city-digital-twin-martinique-mosquitto-1`
- `bunkerm_bunkerm_1` → devrait être `bunkerm-bunkerm-1`
- **Cause 2** : Consumer BunkerM avec auth bloquait tout Telegraf ("not Authorized")
- **Correction** : Modifié `telegraf.conf` (noms corrigés + BunkerM commenté)
- **Statut** : Telegraf UP, consumers EMQX + Mosquitto connectés sans erreur
### Problème 3 : Dashboard Grafana sans données
- Le simulateur envoie bien les données vers EMQX (logs confirment)
- Le Mosquitto du projet est en fait celui de ChirpStack (même réseau, même config)
- Telegraf fixé mais pas encore vérifié l'écriture réussie dans InfluxDB
- Pipeline : Simulateur → MQTT (EMQX + Mosquitto) → Telegraf → InfluxDB → Grafana
## Fichiers modifiés
- `/home/eric/smart-city-digital-twin-martinique/telegraf.conf` — noms containers corrigés + BunkerM commenté
- `/home/eric/openremote/docker-compose.yml` — image PG changée pour timescaledb-ha:pg15
- `/home/eric/TODO.md` — à mettre à jour
- `/home/eric/smart-city-digital-twin-martinique/TODO.md` — à mettre à jour
## Containers critiques actuels
- `openremote-postgresql` — RECREÉ avec image timescaledb-ha:pg15 (health: starting)
- `openremote-keycloak` — Up 25h (healthy)
- `openremote-manager` — Up mais health: starting (attendre PG ready)
- `smart-city-telegraf` — UP, connecté à EMQX + Mosquitto
- `smart-city-simulator` — UP, publie 60 capteurs (MQTT OK: 1/2)
## Prochaines étapes
1. Reprendre OpenRemote : vérifier que le PG est healthy puis le Manager
2. Vérifier Telegraf → InfluxDB : `docker exec smart-city-influxdb influx query 'from(bucket:"smartcity") |> range(start:-5m) |> limit(n:5)' --token my-super-token --org digitribe`
3. Vérifier Grafana dashboard smart city
4. BunkerM : vérifier le port (1883 vs 1900) et réactiver dans Telegraf
5. Commit Gitea + push

View File

@@ -1083,8 +1083,9 @@ def main():
print("║ Smart City Simulator — Martinique ║")
print("╚══════════════════════════════════════════════════╝")
print(f"[CFG] Capteurs: {len(SENSORS)} | Intervalle: {INTERVAL}s")
# print(f"[CFG] Orion-LD: {ENABLE_ORION} | Stellio: {ENABLE_STELLIO} | FROST: {ENABLE_FROST}")
print(f"[CFG] InfluxDB: {ENABLE_INFLUX} | Pulsar: {ENABLE_PULSAR} | Redpanda: {ENABLE_REDPANDA}")
print(f"[CFG] FROST: {ENABLE_FROST} | OpenRemote: {ENABLE_OPENREMOTE}")
print(f"[CFG] MQTT brokers: EMQX={os.getenv('ENABLE_EMQX','1')} Mosquitto={os.getenv('ENABLE_MOSQUITTO','1')}")
# --- Démarrer le serveur Prometheus ---
_start_metrics_server()
@@ -1094,16 +1095,17 @@ def main():
sensors_total.labels(sensor_type=stype).set(count)
up.set(1)
# Init connectivity checks
# Init connectivity checks (only if enabled)
if ENABLE_PULSAR:
_init_pulsar()
# Test immédiat
print(f" 🌪️ DEBUG: Test Pulsar direct...", flush=True)
test_payload = {"type": "test", "value": 123}
test_result = publish_pulsar("test_001", {"type": "air-quality"}, test_payload)
print(f" 🌪️ DEBUG: Test Pulsar result: {test_result}", flush=True)
try:
_init_pulsar()
except Exception as e:
print(f"[PULSAR] ⚠️ Init failed: {e}")
if ENABLE_REDPANDA:
_init_redpanda()
try:
_init_redpanda()
except Exception as e:
print(f"[REDPANDA] ⚠️ Init failed: {e}")
mqtt_client = MultiMQTT()
@@ -1124,19 +1126,13 @@ def main():
for sid, sensor in SENSORS.items():
stype = sensor["type"]
# Utiliser l'index du capteur dans FIXED_LOCATIONS (1-5) pour correspondre aux agents OpenRemote
# Le sid est formaté comme {stype}_{counter:03d} avec counter global
# On extrait l'index du capteur depuis le sid (derniers chiffres)
sensor_num = int(sid.split("_")[1])
# Calculer l'index 1-5 basé sur la position dans le type
# traffic: 0-9, airquality: 10-19, parking: 20-29, noise: 30-39, weather: 40-49, light: 50-59
type_offsets = {"traffic": 0, "airquality": 10, "parking": 20, "noise": 30, "weather": 40, "light": 50}
type_offset = type_offsets.get(stype, 0)
sensor_index = sensor_num - type_offset + 1 # 1-indexed
sensor_index = sensor_num - type_offset + 1
topic = f"smartcity/{stype}/{sensor_index}"
# --- Payload MQTT (ATTRIBUTES ONLY - pas de id/type/lat/lon !)
# # L'IoT Agent n'attend que les readings, pas le body complet
# --- Payload MQTT ---
ranges = SENSOR_RANGES.get(stype, {})
payload_mqtt = {
"timestamp": datetime.now(timezone.utc).isoformat(),
@@ -1158,77 +1154,19 @@ def main():
if ok_mqtt:
print(f" 📤 {topic}{','.join(ok_mqtt)}")
# # --- IoT-Agent (via EMQX) ---
# if ENABLE_IOT_AGENT:
# ok_iot = mqtt_client.publish_iot_agent(sid, payload_mqtt, sensor_type=stype)
# print(f" 🤖 IoT-Agent: {'✅' if ok_iot else '❌'}")
# Extraire les valeurs pour OpenRemote
or_values = {}
for field, val_range in ranges.items():
if isinstance(val_range, tuple) and len(val_range) == 2:
lo, hi = val_range
if isinstance(lo, (int, float)):
or_values[field] = round(random.uniform(lo, hi), 1)
# --- OpenRemote REST (round-robin: seulement quelques assets/itération) ---
# --- OpenRemote REST (round-robin) ---
if ENABLE_OPENREMOTE:
# Mettre à jour seulement ~5 assets par itération pour éviter timeups
# sensor_num % 12 == iteration % 12 → chaque asset est mis à jour toutes les ~60s
if sensor_num % 12 == iteration % 12:
or_values = {}
for field, val_range in ranges.items():
if isinstance(val_range, tuple) and len(val_range) == 2:
lo, hi = val_range
if isinstance(lo, (int, float)):
or_values[field] = round(random.uniform(lo, hi), 1)
ok_or = publish_openremote(sid, sensor, or_values)
print(f" 🏠 OpenRemote: {'' if ok_or else '⚠️ skipped'}")
# else: skip OR update this iteration (asset updated in previous cycle)
# # --- Orion-LD --- (DÉSACTIVÉ: tout passe par les IoT-Agents MQTT)
# # if ENABLE_ORION:
# # ok_or = publish_orion(sid, sensor)
# # print(f" 🌐 Orion-LD: {'✅' if ok_or else '⚠️ skipped'}")
# # --- Stellio --- (DÉSACTIVÉ: tout passe par les IoT-Agents MQTT)
# # if ENABLE_STELLIO:
# # ok_st = publish_stellio(sid, sensor)
# # print(f" 🏢 Stellio: {'✅' if ok_st else '❌'}")
# --- FROST ---
if ENABLE_FROST:
ranges2 = SENSOR_RANGES.get(stype, {})
for field, val_range in ranges2.items():
if isinstance(val_range, tuple) and len(val_range) == 2:
lo, hi = val_range
if isinstance(lo, (int, float)):
val = round(random.uniform(lo, hi), 1)
ok_fr = publish_frost(sid, sensor, field, val)
print(f" 📊 FROST: {'' if ok_fr else ''}")
# --- InfluxDB ---
if ENABLE_INFLUX:
influx_vals = {}
for field, val_range in ranges.items():
if isinstance(val_range, tuple) and len(val_range) == 2:
lo, hi = val_range
if isinstance(lo, (int, float)):
influx_vals[field] = round(random.uniform(lo, hi), 1)
ok_influx = publish_influx(sid, sensor, influx_vals)
print(f" 📈 InfluxDB: {'' if ok_influx else ''}")
# --- Pulsar (HTTP REST) ---
if ENABLE_PULSAR:
print(f" 🌪️ DEBUG: calling publish_pulsar for {sid}, payload_mqtt exists: {bool(locals().get('payload_mqtt'))}", flush=True)
ok_pulsar = publish_pulsar(sid, sensor, payload_mqtt)
print(f" 🌪️ Pulsar: {'' if ok_pulsar else ''}")
# --- Redpanda (Kafka REST Proxy) ---
if ENABLE_REDPANDA:
ok_redpanda = publish_redpanda(sid, sensor, payload_mqtt)
print(f" 🐟 Redpanda: {'' if ok_redpanda else ''}")
# --- BunkerM HTTP ---
if os.getenv("BUNKERM_HTTP", "0") == "1":
ok_bunkerm = publish_bunkerm(sid, sensor, payload_mqtt)
print(f" 📦 BunkerM: {'' if ok_bunkerm else ''}")
print(f"[SIM] ✅ {len(SENSORS)} capteurs | MQTT OK: {sum(mqtt_client.ok.values())}/{len(mqtt_client.clients)} | OR: {ENABLE_OPENREMOTE}")
print(f"[SIM] ✅ {len(SENSORS)} capteurs | MQTT OK: {sum(mqtt_client.ok.values())}/{len(mqtt_client.clients)}")
try:
time.sleep(INTERVAL)

View File

@@ -0,0 +1,264 @@
# Smart City Digital Twin Martinique — Architecture des Stacks
> Snapshot: 2026-05-23 12:00
> Total: 117 containers / 26 stacks
## 🌐 Infrastructure Réseau
| Réseau | Driver | Usage |
|--------|--------|-------|
| traefik | bridge | Reverse proxy principal |
| traefik-public | bridge |Services exposés |
| smartcity-shared | bridge | Réseau partagé smart city |
| mainflux-network | bridge | Stack Mainflux |
| emqx_default | bridge | Broker EMQX |
| contexus-iot-network | bridge | Stack Contexus |
| fiware-gis-quickstart_fiware | bridge | FIWARE |
| mapstore2_mapstore-network | bridge | MapStore |
| honcho_default | bridge | Honcho |
| digital-twin_digital-twin | bridge | NodeRed + Connector |
| openremote_default | bridge | OpenRemote (actuellement DOWN) |
| docker_default | bridge | Stack principale |
| bridge | bridge | Défaut Docker |
---
## 📦 Stacks Détaillées
### 1. TRAFICKO (1 container)
| Service | Image | Ports |
|---------|-------|-------|
| traefik | traefik:v3.1 | 80, 443, 8404 |
### 2. SMART-CITY-CORE (17 containers) ⚠️ 7 issues
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| smart-city-simulator | smart-city-digital-twin-martinique-simulator | 🔴 CRASH (exit 137, 896 restarts) | 8081 |
| smart-city-telegraf | telegraf:1.28 | 🔴 Restart boucle | - |
| smart-city-influxdb | influxdb:2.7-alpine | ✅ Healthy | 8086 |
| smart-city-grafana | grafana/grafana:10.2.0 | ✅ Up | 3001 |
| smart-city-loki | grafana/loki:latest | ✅ Up | 3100 |
| smart-city-promtail | grafana/promtail:latest | ✅ Up | - |
| smart-city-kepler | smart-city-kepler:latest | ✅ Up | 80, 8080 |
| smart-city-redpanda-console | redpandadata/console:v2.5.0 | ❌ Restart | - |
### 3. SMART-CITY-IOT (5 containers)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| smart-city-ditto-gateway | eclipse/ditto-gateway:latest | ✅ Up | 8080 |
| smart-city-ditto-policies | eclipse/ditto-policies:latest | ✅ Up | 8080 |
| smart-city-ditto-mongodb | mongo:6 | ✅ Up | 27017 |
| smart-city-digital-twin-martinique-mosquitto-1 | eclipse-mosquitto:2 | ✅ Up | 1883 |
| smart-city-digital-twin-martinique-redis-1 | redis:7-alpine | ✅ Up | 6379 |
### 4. MAINFLUX (39 containers) ⚠️ 1 issue
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| mainfluxlabs-ui | mainfluxlabs/ui:v0.36.1 | ✅ Up | 3000 |
| mainfluxlabs-users | mainfluxlabs/users:v0.36.1 | ✅ Up | 8180, 8184 |
| mainfluxlabs-auth | mainfluxlabs/auth:v0.36.1 | ✅ Up | 8181, 8189 |
| mainfluxlabs-things | mainfluxlabs/things:v0.36.1 | ✅ Up | 8182-8183, 8989 |
| mainfluxlabs-mqtt | mainfluxlabs/mqtt:v0.36.1 | ✅ Up | - |
| mainfluxlabs-http | mainfluxlabs/http:v0.36.1 | ✅ Up | 8185 |
| mainfluxlabs-ws | mainfluxlabs/ws:v0.36.1 | ✅ Up | 8190 |
| mainfluxlabs-coap | mainfluxlabs/coap:v0.36.1 | ✅ Up | 5683 |
| mainfluxlabs-modbus | mainfluxlabs/modbus:v0.36.1 | ✅ Up | 9028 |
| mainfluxlabs-broker | nats:2.2.4-alpine | ✅ Up | 4222, 8222 |
| mainfluxlabs-mosquitto | eclipse-mosquitto:2.0 | ✅ Up | 1883 |
| + 28 autres services DB/writer/reader/notifier | | ✅ Up | |
### 5. THINGSBOARD (14 containers) ⚠️ 7 issues
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| docker_tb-web-ui1_1 | thingsboard/tb-web-ui:latest | ✅ Up | 32769→8080 |
| docker_tb-web-ui2_1 | thingsboard/tb-web-ui:latest | ✅ Up | 32770→8080 |
| docker_tb-js-executor_1-10 | thingsboard/tb-js-executor:latest | ⚠️ Redémarrages | - |
| docker_zookeeper_1 | zookeeper:3.8.1 | ✅ Up | 2181, 32768 |
| docker_tb-rule-engine1_1 | - | ⚠️ Created (pas démarré) | - |
| docker_tb-rule-engine2_1 | - | ⚠️ Created (pas démarré) | - |
| thingsboard-rabbitmq | rabbitmq:3.12-management | ✅ Healthy | 4369, 5671-5672 |
| thingsboard-postgres | postgres:15-alpine | ✅ Healthy | 5432 |
### 6. MAPSTORE (3 containers) ⚠️ 502 via Traefik
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| mapstore-proxy | nginx | ✅ Up | 80 |
| mapstore-app | geosolutionsit/mapstore2:latest | ✅ Up | 8080 |
| mapstore-postgres | geosolutions-mapstore/postgis | ✅ Healthy | 5432 |
### 7. GEOSERVER (1 container)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| geoserver_stack-geoserver-1 | oscarfonts/geoserver:2.25.2 | ✅ Healthy | 8080 |
PostGIS dédié :
| postgis-smartcity | postgis/postgis:15-3.4 | ✅ Healthy | 5433 |
### 8. CONTXUS (3 containers) ⚠️ unhealthy
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| contexus-app | contexusio/contexus:latest | ⚠️ Unhealthy | 15000 |
| contexus-postgres | postgres:16 | ✅ Healthy | 5432 |
| contexus-redis | redis:7-alpine | ✅ Healthy | 6379 |
### 9. CHIRPSTACK (3 containers)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| smart-city-digital-twin-martinique-chirpstack-1 | chirpstack/chirpstack:latest | ✅ Up | - |
| chirpstack/chirpstack-rest-api:4 | chirpstack/chirpstack-rest-api:4 | ✅ Up | - |
| chirpstack/chirpstack-gateway-bridge:4 | chirpstack/chirpstack-gateway-bridge:4 | ✅ Up | 1700/udp |
| chirpstack-mosquitto | eclipse-mosquitto:2 | ✅ Up | 1883 |
| chirpstack-redis | redis:7-alpine | ✅ Up | 6379 |
| chirpstack-postgres | postgres:14-alpine | ✅ Up | 5432 |
### 10. FIWARE (3 containers)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| fiware-gis-quickstart-orion-1 | quay.io/fiware/orion-ld | ✅ Healthy | 2026→1026 |
| fiware-gis-quickstart-orionproxy-1 | fiware-gis-quickstart-orionproxy | ✅ Up | 1026→80 |
| fiware-gis-quickstart-mongo-db-1 | mongo:4.2 | ✅ Up | 27017 |
### 11. FROST (2 containers)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| frost_allinone-web-1 | fraunhoferiosb/frost-server:latest | ✅ Up | 1883, 8089, 8090→8080 |
| frost_http-web-1 | fraunhoferiosb/frost-server-http:latest | ✅ Up | 8080 |
### 12. EMQX (1 container)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| emqx_emqx_1 | emqx/emqx:latest | ✅ Up | 1883, 8883, 18083, 8081, 8083-8084, 11883, 38083 |
### 13. STELLIO (5 containers) ⚠️ 4 down
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| stellio-api-gateway | stellio/stellio-api-gateway:latest-dev | ✅ Up | 8080 |
| stellio-search-service | - | ❌ Exited | - |
| stellio-subscription-service | - | ❌ Exited | - |
| stellio-kafka | - | ❌ Exited | - |
| stellio-postgres | - | ❌ Exited | - |
### 14. DIGITAL-TWIN (2 containers)
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| digital-twin-nodered | nodered/node-red:3.1 | ✅ Healthy | 1880 |
| digital-twin-connector | python:3.11-slim | ✅ Up | - |
### 15. HONCHO (4 containers) ⚠️ API restart
| Service | Image | Status | Ports |
|---------|-------|--------|-------|
| honcho-api-1 | honcho:latest | ⚠️ Restart | - |
| honcho-deriver-1 | honcho-deriver | ✅ Healthy | 8000 |
| honcho-grafana-1 | grafana/grafana:11.4.0 | ✅ Healthy | 3088 |
| honcho-prometheus-1 | prom/prometheus:v3.2.1 | ✅ Healthy | 9091 |
### 16. Autres stacks
| Stack | Containers | Statut |
|-------|------------|--------|
| bunkerm | 1 | ⚠️ Unhealthy |
| phpipam | 2 | ✅ Up |
| gitea | 1 | ✅ Up |
| localai | 2 | ⚠️ Orphaned duplicate |
| agent-gateway | 1 | ✅ Up |
| yaade | 1 | ✅ Up |
| community-tools (docker-exporter) | 1 | ✅ Up |
---
## 🔌 Brokers MQTT (identifiés)
| Broker | Container | Port | Stack |
|--------|-----------|------|-------|
| Mosquitto (principal) | smart-city-digital-twin-martinique-mosquitto-1 | 1883 | smart-city-iot |
| Mosquitto (ChirpStack) | chirpstack-mosquitto-1 | 1883 | chirpstack |
| Mosquitto (Mainflux) | mainfluxlabs-mosquitto | 1883 | mainflux |
| MQTT Bridge (Mainflux) | mainfluxlabs-mqtt | - | mainflux |
| EMQX | emqx_emqx_1 | 1883, 8883, 11883 | emqx |
| RabbitMQ | thingsboard-rabbitmq | 5672 | thingsboard |
| RabbitMQ (OpenRemote) | (dans stack openremote - DOWN) | 5672 | openremote |
| NATS | mainfluxlabs-broker | 4222 | mainflux |
---
## 🔄 Flux de Données Validés
```
Simulateur IoT
├──► Mosquitto (principal:1883)
│ │
│ ├──► Telegraf ──► InfluxDB (8086) ──► Grafana (3001)
│ │
│ ├──► Mainflux MQTT ──► Mainflux Broker (NATS) ──► Things/Users/Auth
│ │
│ └──► IoT-Agent FIWARE ──► Orion-LD (1026) ──► QuantumLeap ──► CrateDB
│ │
│ ▼
│ Grafana
├──► EMQX (1883)
│ │
│ └──► Contexus MQTT Driver ──► Contexus Devices
└──► ChirpStack Mosquitto (1883)
└──► ChirpStack ──► ChirpStack REST API
OpenRemote Internal Artemis MQTT
└──► Agent MQTT ──► Assets (sensors) ──► Map Display
```
---
## ⚠️ Problèmes Connus (2026-05-23)
| Priorité | Problème | Impact |
|----------|----------|--------|
| 🔴 CRITIQUE | Simulator crash boucle (exit 137, 896 restarts) | Plus de données IoT |
| 🔴 CRITIQUE | OpenRemote Manager 502 | Pas de carte |
| 🟠 HAUTE | Telegraf restart boucle | Pas de données InfluxDB |
| 🟠 HAUTE | ThingsBoard executors instables | TB partiellement fonctionnel |
| 🟠 HAUTE | MapStore 502 via Traefik | Pas d'accès web |
| 🟡 MOYENNE | Contexus unhealthy | API fonctionnelle mais healthcheck KO |
| 🟡 MOYENNE | Stellio 4 services arrêtés | Search/Sub/Kafka/Postgres down |
| 🟡 MOYENNE | Ditto gateway UP mais pas de HTTP | API inaccessible |
| 🟡 MOYENNE | Bunkerm unhealthy | Monitoring down |
| 🔵 BASSE | Honcho API restartant | Mémoire/agentiel intermittent |
| 🔵 BASSE | Redpanda console restart | Console indisponible |
---
## 📝 Snapshots & Restauration
### Créer un snapshot
```bash
# État des containers
docker ps -a --format "table {{.Names}}\t{{.Image}}\t{{.Status}}" > snapshots/DATE/containers-state.txt
# Sauvegarder les images d'une stack
docker save -o snapshots/DATE/simulator.tar smart-city-digital-twin-martinique-simulator
docker save -o snapshots/DATE/openremote-manager.tar openremote/manager
# Sauvegarder les volumes
docker run --rm -v smart-city_simulator_data:/data -v $(pwd)/snapshots/DATE:/backup alpine tar czf /backup/simulator-data.tar.gz -C /data .
```
### Restaurer un snapshot
```bash
# Restaurer une image
docker load -i snapshots/DATE/simulator.tar
# Redémarrer une stack
docker-compose up -d --force-recreate simulator
# Restaurer un volume
docker run --rm -v smart-city_simulator_data:/data -v $(pwd)/snapshots/DATE:/backup alpine tar xzf /backup/simulator-data.tar.gz -C /data
```
### Stables stacks à snapshoter en priorité
1. **smart-city-core** (simulator, telegraf, influxdb)
2. **openremote** (manager, keycloak, artemis, postgres)
3. **mapstore** (proxy, app, postgres)
4. **geoserver** (geoserver, postgis)
5. **mainflux** (ensemble de la stack)

View File

@@ -0,0 +1,105 @@
NAMES IMAGE STATUS PORTS
traefik traefik:v3.1 Up 33 hours 0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8404->8404/tcp, [::]:8404->8404/tcp
smart-city-simulator smart-city-digital-twin-martinique-simulator Up 59 seconds 8081/tcp
smart-city-loki grafana/loki:latest Up 2 days 0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp
smart-city-promtail grafana/promtail:latest Up 2 days
localai-api localai/localai:latest Up 2 days (healthy) 8080/tcp
mainfluxlabs-mqtt mainfluxlabs/mqtt:v0.36.1 Up 2 days
docker_tb-js-executor_10 thingsboard/tb-js-executor:latest Up 26 seconds
docker_tb-js-executor_8 thingsboard/tb-js-executor:latest Restarting (0) 5 seconds ago
docker_tb-js-executor_9 thingsboard/tb-js-executor:latest Up 30 seconds
docker_tb-web-ui1_1 thingsboard/tb-web-ui:latest Up 2 days 0.0.0.0:32769->8080/tcp, [::]:32769->8080/tcp
docker_tb-js-executor_6 thingsboard/tb-js-executor:latest Up 24 seconds
docker_zookeeper_1 zookeeper:3.8.1 Up 2 days 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, [::]:2181->2181/tcp, 8080/tcp, 0.0.0.0:32768->2181/tcp, [::]:32768->2181/tcp
docker_tb-js-executor_7 thingsboard/tb-js-executor:latest Up 21 seconds
docker_tb-js-executor_4 thingsboard/tb-js-executor:latest Up 26 seconds
docker_tb-js-executor_5 thingsboard/tb-js-executor:latest Up 20 seconds
docker_tb-js-executor_2 thingsboard/tb-js-executor:latest Restarting (0) 8 seconds ago
docker_tb-js-executor_1 thingsboard/tb-js-executor:latest Restarting (0) 9 seconds ago
docker_tb-js-executor_3 thingsboard/tb-js-executor:latest Restarting (137) 20 seconds ago
docker_tb-web-ui2_1 thingsboard/tb-web-ui:latest Up 2 days 0.0.0.0:32770->8080/tcp, [::]:32770->8080/tcp
contexus-app contexusio/contexus:latest Up 19 hours (unhealthy) 15000/tcp
contexus-postgres postgres:16 Up 2 days (healthy) 5432/tcp
contexus-redis redis:7-alpine Up 2 days (healthy) 6379/tcp
smart-city-kepler smart-city-kepler:latest Up 2 days 80/tcp, 8080/tcp
postgis-smartcity postgis/postgis:15-3.4 Up 2 days (healthy) 0.0.0.0:5433->5432/tcp, [::]:5433->5432/tcp
smart-city-ditto-policies eclipse/ditto-policies:latest Up 2 days 8080/tcp
smart-city-ditto-gateway eclipse/ditto-gateway:latest Up 19 hours 8080/tcp
smart-city-ditto-mongodb mongo:6 Up 2 days 27017/tcp
smart-city-digital-twin-martinique-chirpstack-rest-api-1 chirpstack/chirpstack-rest-api:4 Up 2 days
smart-city-digital-twin-martinique-chirpstack-1 chirpstack/chirpstack:latest Up 2 days
agentgateway cr.agentgateway.dev/agentgateway:latest Up 2 days 3000/tcp, 15000/tcp
smart-city-digital-twin-martinique-chirpstack-gateway-bridge-basicstation-1 chirpstack/chirpstack-gateway-bridge:4 Up 2 days
smart-city-digital-twin-martinique-chirpstack-gateway-bridge-1 chirpstack/chirpstack-gateway-bridge:4 Up 2 days 0.0.0.0:1700->1700/udp, [::]:1700->1700/udp
smart-city-digital-twin-martinique-mosquitto-1 eclipse-mosquitto:2 Up 2 days 1883/tcp
smart-city-digital-twin-martinique-redis-1 redis:7-alpine Up 2 days 6379/tcp
bunkerm-bunkerm-1 bunkeriot/bunkerm:latest Up 2 days (unhealthy) 0.0.0.0:1900->1900/tcp, [::]:1900->1900/tcp, 0.0.0.0:2000->2000/tcp, [::]:2000->2000/tcp
chirpstack-redis-1 redis:7-alpine Up 2 days 6379/tcp
chirpstack-mosquitto-1 eclipse-mosquitto:2 Up 2 days 1883/tcp
chirpstack-postgres-1 postgres:14-alpine Up 2 days 5432/tcp
fiware-gis-quickstart-orionproxy-1 fiware-gis-quickstart-orionproxy Up 2 days 127.0.0.1:1026->80/tcp
fiware-gis-quickstart-orion-1 quay.io/fiware/orion-ld Up 2 days (healthy) 127.0.0.1:2026->1026/tcp
fiware-gis-quickstart-mongo-db-1 mongo:4.2 Up 2 days 127.0.0.1:27017->27017/tcp
smart-city-influxdb influxdb:2.7-alpine Up 2 days (healthy) 0.0.0.0:8086->8086/tcp, [::]:8086->8086/tcp
smart-city-telegraf telegraf:1.28 Restarting (1) 11 seconds ago
smart-city-grafana grafana/grafana:10.2.0 Up 2 days 0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp
docker-exporter docker-exporter:latest Up 2 days 0.0.0.0:8005->8005/tcp, [::]:8005->8005/tcp
mainfluxlabs-http mainfluxlabs/http:v0.36.1 Up 2 days 0.0.0.0:8185->8185/tcp, [::]:8185->8185/tcp
mainfluxlabs-rules mainfluxlabs/rules:v0.36.1 Up 2 days 0.0.0.0:9027->9027/tcp, [::]:9027->9027/tcp
mainfluxlabs-converters mainfluxlabs/converters:v0.36.1 Up 2 days 0.0.0.0:8195->8195/tcp, [::]:8195->8195/tcp
mainfluxlabs-smtp-notifier mainfluxlabs/smtp-notifier:v0.36.1 Up 2 days 0.0.0.0:9023->9023/tcp, [::]:9023->9023/tcp
mainfluxlabs-modbus mainfluxlabs/modbus:v0.36.1 Up 2 days 0.0.0.0:9028->9028/tcp, [::]:9028->9028/tcp
mainfluxlabs-ws mainfluxlabs/ws:v0.36.1 Up 2 days 0.0.0.0:8190->8190/tcp, [::]:8190->8190/tcp
mainfluxlabs-webhooks mainfluxlabs/webhooks:v0.36.1 Up 2 days 0.0.0.0:9021->9021/tcp, [::]:9021->9021/tcp
mainfluxlabs-downlinks mainfluxlabs/downlinks:v0.36.1 Up 2 days 0.0.0.0:9025->9025/tcp, [::]:9025->9025/tcp
mainfluxlabs-alarms mainfluxlabs/alarms:v0.36.1 Up 2 days 0.0.0.0:9026->9026/tcp, [::]:9026->9026/tcp
mainfluxlabs-filestore mainfluxlabs/filestore:v0.36.1 Up 2 days 0.0.0.0:9022->9022/tcp, [::]:9022->9022/tcp
mainfluxlabs-coap mainfluxlabs/coap:v0.36.1 Up 2 days 0.0.0.0:5683->5683/tcp, 0.0.0.0:5683->5683/udp, [::]:5683->5683/tcp, [::]:5683->5683/udp
mainfluxlabs-things mainfluxlabs/things:v0.36.1 Up 2 days 0.0.0.0:8182-8183->8182-8183/tcp, [::]:8182-8183->8182-8183/tcp, 0.0.0.0:8989->8989/tcp, [::]:8989->8989/tcp
mainfluxlabs-users mainfluxlabs/users:v0.36.1 Up 2 days 0.0.0.0:8180->8180/tcp, [::]:8180->8180/tcp, 0.0.0.0:8184->8184/tcp, [::]:8184->8184/tcp
mainfluxlabs-auth mainfluxlabs/auth:v0.36.1 Up 2 days 0.0.0.0:8181->8181/tcp, [::]:8181->8181/tcp, 0.0.0.0:8189->8189/tcp, [::]:8189->8189/tcp
mainfluxlabs-certs mainfluxlabs/certs:v0.36.1 Up 2 days 0.0.0.0:8204->8204/tcp, [::]:8204->8204/tcp
mainfluxlabs-postgres-writer mainfluxlabs/postgres-writer:v0.36.1 Up 2 days 0.0.0.0:8900->8900/tcp, [::]:8900->8900/tcp
mainfluxlabs-uiconfigs mainfluxlabs/uiconfigs:v0.36.1 Up 2 days 0.0.0.0:9029->9029/tcp, [::]:9029->9029/tcp
mainfluxlabs-mqtt-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-es-redis redis:6.2.2-alpine Up 2 days 6379/tcp
mainfluxlabs-downlinks-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-things-db postgres:13.3-alpine Up 2 days (healthy) 5432/tcp
mainfluxlabs-rules-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-filestore-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-users-db postgres:13.3-alpine Up 2 days (healthy) 5432/tcp
mainfluxlabs-mosquitto eclipse-mosquitto:2.0 Up 2 days 1883/tcp
mainfluxlabs-alarms-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-auth-redis redis:6.2.2-alpine Up 2 days 6379/tcp
mainfluxlabs-modbus-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-broker nats:2.2.4-alpine Up 2 days 6222/tcp, 0.0.0.0:4222->4222/tcp, [::]:4222->4222/tcp, 8222/tcp
mainfluxlabs-webhooks-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-postgres postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-smtp-notifier-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-certs-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-postgres-reader mainfluxlabs/postgres-reader:v0.36.1 Up 2 days 0.0.0.0:8905->8905/tcp, [::]:8905->8905/tcp
mainfluxlabs-auth-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-uiconfigs-db postgres:13.3-alpine Up 2 days 5432/tcp
mainfluxlabs-ui mainfluxlabs/ui:v0.36.1 Up 2 days 80/tcp, 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp
thingsboard-rabbitmq rabbitmq:3.12-management Up 2 days (healthy) 4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp
thingsboard-postgres postgres:15-alpine Up 2 days (healthy) 5432/tcp
mapstore-proxy nginx Up 2 days 80/tcp
mapstore-app geosolutionsit/mapstore2:latest Up 2 days 8080/tcp
mapstore-postgres geosolutions-mapstore/postgis Up 2 days (healthy) 5432/tcp
emqx_emqx_1 emqx/emqx:latest Up 2 days 4370/tcp, 5369/tcp, 8083-8084/tcp, 0.0.0.0:11883->1883/tcp, [::]:11883->1883/tcp, 0.0.0.0:18081->8081/tcp, [::]:18081->8081/tcp, 0.0.0.0:18883->8883/tcp, [::]:18883->8883/tcp, 0.0.0.0:38083->18083/tcp, [::]:38083->18083/tcp
smart-city-redpanda-console docker.redpanda.com/redpandadata/console:v2.5.0 Restarting (1) 1 second ago
stellio-api-gateway stellio/stellio-api-gateway:latest-dev Up 13 hours 8080/tcp
frost_allinone-web-1 fraunhoferiosb/frost-server:latest Up 2 days 1883/tcp, 8089/tcp, 127.0.0.1:8090->8080/tcp
geoserver_stack-geoserver-1 oscarfonts/geoserver:2.25.2 Up 2 days (healthy) 8080/tcp
grafana_stack-grafana-1 grafana/grafana:latest Up 2 days 3000/tcp
frost_http-web-1 fraunhoferiosb/frost-server-http:latest Up 2 days 8080/tcp
esperotech esperotech/yaade:latest Up 2 days 0.0.0.0:9339->9339/tcp, [::]:9339->9339/tcp
digital-twin-nodered nodered/node-red:3.1 Up 2 days (healthy) 0.0.0.0:1880->1880/tcp, [::]:1880->1880/tcp
digital-twin-connector python:3.11-slim Up About an hour
gitea gitea/gitea:latest Up 2 days 22/tcp, 3000/tcp
honcho-grafana-1 grafana/grafana:11.4.0 Up 2 days (healthy) 127.0.0.1:3088->3000/tcp
honcho-prometheus-1 prom/prometheus:v3.2.1 Up 2 days (healthy) 127.0.0.1:9091->9090/tcp
honcho-api-1 honcho:latest Restarting (1) 12 seconds ago
honcho-deriver-1 honcho-deriver Up 2 days (healthy) 8000/tcp
phpipam-phpipam-web-1 phpipam/phpipam-www:latest Up 2 days 127.0.0.1:8085->80/tcp
phpipam-phpipam-cron-1 phpipam/phpipam-cron:latest Up 2 days 80/tcp

View File

@@ -0,0 +1,762 @@
{
"timestamp": "2026-05-23T08:23:31.144199",
"total": 117,
"stacks": {
"agent-gateway": [
{
"name": "agentgateway",
"image": "cr.agentgateway.dev/agentgateway:latest",
"status": "Up 2 days",
"ports": "3000/tcp, 15000/tcp"
}
],
"bunkerm": [
{
"name": "bunkerm-bunkerm-1",
"image": "bunkeriot/bunkerm:latest",
"status": "Up 2 days (unhealthy)",
"ports": "0.0.0.0:1900->1900/tcp, [::]:1900->1900/tcp, 0.0.0.0:2000->2000/tcp, [::]:2000->2000/tcp"
}
],
"chirpstack": [
{
"name": "chirpstack-mosquitto-1",
"image": "eclipse-mosquitto:2",
"status": "Up 2 days",
"ports": "1883/tcp"
},
{
"name": "chirpstack-postgres-1",
"image": "postgres:14-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "chirpstack-redis-1",
"image": "redis:7-alpine",
"status": "Up 2 days",
"ports": "6379/tcp"
}
],
"community-tools": [
{
"name": "docker-exporter",
"image": "docker-exporter:latest",
"status": "Up 2 days",
"ports": "0.0.0.0:8005->8005/tcp, [::]:8005->8005/tcp"
}
],
"contexus": [
{
"name": "contexus-app",
"image": "contexusio/contexus:latest",
"status": "Up 19 hours (unhealthy)",
"ports": "15000/tcp"
},
{
"name": "contexus-postgres",
"image": "postgres:16",
"status": "Up 2 days (healthy)",
"ports": "5432/tcp"
},
{
"name": "contexus-redis",
"image": "redis:7-alpine",
"status": "Up 2 days (healthy)",
"ports": "6379/tcp"
}
],
"digital-twin": [
{
"name": "digital-twin-connector",
"image": "python:3.11-slim",
"status": "Up About an hour",
"ports": ""
},
{
"name": "digital-twin-nodered",
"image": "nodered/node-red:3.1",
"status": "Up 2 days (healthy)",
"ports": "0.0.0.0:1880->1880/tcp, [::]:1880->1880/tcp"
}
],
"docker_zookeeper_1": [
{
"name": "docker_zookeeper_1",
"image": "zookeeper:3.8.1",
"status": "Up 2 days",
"ports": "2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, [::]:2181->2181/tcp, 8080/tcp, 0.0.0.0:32768->2181/tcp, [::]:32768->2181/tcp"
}
],
"emqx": [
{
"name": "emqx_emqx_1",
"image": "emqx/emqx:latest",
"status": "Up 2 days",
"ports": "4370/tcp, 5369/tcp, 8083-8084/tcp, 0.0.0.0:11883->1883/tcp, [::]:11883->1883/tcp, 0.0.0.0:18081->8081/tcp, [::]:18081->8081/tcp, 0.0.0.0:18883->8883/tcp, [::]:18883->8883/tcp, 0.0.0.0:38083->18083/tcp, [::]:38083->18083/tcp"
}
],
"fiware": [
{
"name": "fiware-gis-quickstart-mongo-db-1",
"image": "mongo:4.2",
"status": "Up 2 days",
"ports": "127.0.0.1:27017->27017/tcp"
},
{
"name": "fiware-gis-quickstart-orion-1",
"image": "quay.io/fiware/orion-ld",
"status": "Up 2 days (healthy)",
"ports": "127.0.0.1:2026->1026/tcp"
},
{
"name": "fiware-gis-quickstart-orionproxy-1",
"image": "fiware-gis-quickstart-orionproxy",
"status": "Up 2 days",
"ports": "127.0.0.1:1026->80/tcp"
}
],
"frost": [
{
"name": "frost_allinone-web-1",
"image": "fraunhoferiosb/frost-server:latest",
"status": "Up 2 days",
"ports": "1883/tcp, 8089/tcp, 127.0.0.1:8090->8080/tcp"
},
{
"name": "frost_http-web-1",
"image": "fraunhoferiosb/frost-server-http:latest",
"status": "Up 2 days",
"ports": "8080/tcp"
}
],
"geoserver": [
{
"name": "geoserver_stack-geoserver-1",
"image": "oscarfonts/geoserver:2.25.2",
"status": "Up 2 days (healthy)",
"ports": "8080/tcp"
}
],
"gitea": [
{
"name": "gitea",
"image": "gitea/gitea:latest",
"status": "Up 2 days",
"ports": "22/tcp, 3000/tcp"
}
],
"grafana-stack": [
{
"name": "grafana_stack-grafana-1",
"image": "grafana/grafana:latest",
"status": "Up 2 days",
"ports": "3000/tcp"
}
],
"honcho": [
{
"name": "honcho-api-1",
"image": "honcho:latest",
"status": "Restarting (1) 12 seconds ago",
"ports": ""
},
{
"name": "honcho-deriver-1",
"image": "honcho-deriver",
"status": "Up 2 days (healthy)",
"ports": "8000/tcp"
},
{
"name": "honcho-grafana-1",
"image": "grafana/grafana:11.4.0",
"status": "Up 2 days (healthy)",
"ports": "127.0.0.1:3088->3000/tcp"
},
{
"name": "honcho-prometheus-1",
"image": "prom/prometheus:v3.2.1",
"status": "Up 2 days (healthy)",
"ports": "127.0.0.1:9091->9090/tcp"
}
],
"localai": [
{
"name": "8a0cce6d1940_localai-api-1",
"image": "localai/localai:latest",
"status": "Exited (0) 2 days ago",
"ports": ""
},
{
"name": "localai-api",
"image": "localai/localai:latest",
"status": "Up 2 days (healthy)",
"ports": "8080/tcp"
}
],
"mainflux": [
{
"name": "mainfluxlabs-alarms-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-alarms",
"image": "mainfluxlabs/alarms:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9026->9026/tcp, [::]:9026->9026/tcp"
},
{
"name": "mainfluxlabs-auth-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-auth-redis",
"image": "redis:6.2.2-alpine",
"status": "Up 2 days",
"ports": "6379/tcp"
},
{
"name": "mainfluxlabs-auth",
"image": "mainfluxlabs/auth:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8181->8181/tcp, [::]:8181->8181/tcp, 0.0.0.0:8189->8189/tcp, [::]:8189->8189/tcp"
},
{
"name": "mainfluxlabs-broker",
"image": "nats:2.2.4-alpine",
"status": "Up 2 days",
"ports": "6222/tcp, 0.0.0.0:4222->4222/tcp, [::]:4222->4222/tcp, 8222/tcp"
},
{
"name": "mainfluxlabs-certs-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-certs",
"image": "mainfluxlabs/certs:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8204->8204/tcp, [::]:8204->8204/tcp"
},
{
"name": "mainfluxlabs-coap",
"image": "mainfluxlabs/coap:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:5683->5683/tcp, 0.0.0.0:5683->5683/udp, [::]:5683->5683/tcp, [::]:5683->5683/udp"
},
{
"name": "mainfluxlabs-converters",
"image": "mainfluxlabs/converters:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8195->8195/tcp, [::]:8195->8195/tcp"
},
{
"name": "mainfluxlabs-downlinks-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-downlinks",
"image": "mainfluxlabs/downlinks:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9025->9025/tcp, [::]:9025->9025/tcp"
},
{
"name": "mainfluxlabs-es-redis",
"image": "redis:6.2.2-alpine",
"status": "Up 2 days",
"ports": "6379/tcp"
},
{
"name": "mainfluxlabs-filestore-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-filestore",
"image": "mainfluxlabs/filestore:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9022->9022/tcp, [::]:9022->9022/tcp"
},
{
"name": "mainfluxlabs-http",
"image": "mainfluxlabs/http:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8185->8185/tcp, [::]:8185->8185/tcp"
},
{
"name": "mainfluxlabs-jaeger",
"image": "jaegertracing/all-in-one:1.53",
"status": "Exited (255) 2 days ago",
"ports": "5775/udp, 4317-4318/tcp, 9411/tcp, 0.0.0.0:5778->5778/tcp, [::]:5778->5778/tcp, 0.0.0.0:14268->14268/tcp, [::]:14268->14268/tcp, 14250/tcp, 6832/udp, 0.0.0.0:16686->16686/tcp, [::]:16686->16686/tcp, 0.0.0.0:6831->6831/udp, [::]:6831->6831/udp"
},
{
"name": "mainfluxlabs-modbus-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-modbus",
"image": "mainfluxlabs/modbus:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9028->9028/tcp, [::]:9028->9028/tcp"
},
{
"name": "mainfluxlabs-mosquitto",
"image": "eclipse-mosquitto:2.0",
"status": "Up 2 days",
"ports": "1883/tcp"
},
{
"name": "mainfluxlabs-mqtt-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-mqtt",
"image": "mainfluxlabs/mqtt:v0.36.1",
"status": "Up 2 days",
"ports": ""
},
{
"name": "mainfluxlabs-postgres-reader",
"image": "mainfluxlabs/postgres-reader:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8905->8905/tcp, [::]:8905->8905/tcp"
},
{
"name": "mainfluxlabs-postgres-writer",
"image": "mainfluxlabs/postgres-writer:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8900->8900/tcp, [::]:8900->8900/tcp"
},
{
"name": "mainfluxlabs-postgres",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-rules-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-rules",
"image": "mainfluxlabs/rules:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9027->9027/tcp, [::]:9027->9027/tcp"
},
{
"name": "mainfluxlabs-smtp-notifier-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-smtp-notifier",
"image": "mainfluxlabs/smtp-notifier:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9023->9023/tcp, [::]:9023->9023/tcp"
},
{
"name": "mainfluxlabs-things-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days (healthy)",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-things",
"image": "mainfluxlabs/things:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8182-8183->8182-8183/tcp, [::]:8182-8183->8182-8183/tcp, 0.0.0.0:8989->8989/tcp, [::]:8989->8989/tcp"
},
{
"name": "mainfluxlabs-uiconfigs-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-uiconfigs",
"image": "mainfluxlabs/uiconfigs:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9029->9029/tcp, [::]:9029->9029/tcp"
},
{
"name": "mainfluxlabs-ui",
"image": "mainfluxlabs/ui:v0.36.1",
"status": "Up 2 days",
"ports": "80/tcp, 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp"
},
{
"name": "mainfluxlabs-users-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days (healthy)",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-users",
"image": "mainfluxlabs/users:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8180->8180/tcp, [::]:8180->8180/tcp, 0.0.0.0:8184->8184/tcp, [::]:8184->8184/tcp"
},
{
"name": "mainfluxlabs-webhooks-db",
"image": "postgres:13.3-alpine",
"status": "Up 2 days",
"ports": "5432/tcp"
},
{
"name": "mainfluxlabs-webhooks",
"image": "mainfluxlabs/webhooks:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:9021->9021/tcp, [::]:9021->9021/tcp"
},
{
"name": "mainfluxlabs-ws",
"image": "mainfluxlabs/ws:v0.36.1",
"status": "Up 2 days",
"ports": "0.0.0.0:8190->8190/tcp, [::]:8190->8190/tcp"
}
],
"mapstore": [
{
"name": "mapstore-app",
"image": "geosolutionsit/mapstore2:latest",
"status": "Up 2 days",
"ports": "8080/tcp"
},
{
"name": "mapstore-postgres",
"image": "geosolutions-mapstore/postgis",
"status": "Up 2 days (healthy)",
"ports": "5432/tcp"
},
{
"name": "mapstore-proxy",
"image": "nginx",
"status": "Up 2 days",
"ports": "80/tcp"
}
],
"phpipam": [
{
"name": "phpipam-phpipam-cron-1",
"image": "phpipam/phpipam-cron:latest",
"status": "Up 2 days",
"ports": "80/tcp"
},
{
"name": "phpipam-phpipam-web-1",
"image": "phpipam/phpipam-www:latest",
"status": "Up 2 days",
"ports": "127.0.0.1:8085->80/tcp"
}
],
"postgis-smartcity": [
{
"name": "postgis-smartcity",
"image": "postgis/postgis:15-3.4",
"status": "Up 2 days (healthy)",
"ports": "0.0.0.0:5433->5432/tcp, [::]:5433->5432/tcp"
}
],
"smart-city-core": [
{
"name": "smart-city-digital-twin-martinique-chirpstack-1",
"image": "chirpstack/chirpstack:latest",
"status": "Up 2 days",
"ports": ""
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-gateway-bridge-1",
"image": "chirpstack/chirpstack-gateway-bridge:4",
"status": "Up 2 days",
"ports": "0.0.0.0:1700->1700/udp, [::]:1700->1700/udp"
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-gateway-bridge-basicstation-1",
"image": "chirpstack/chirpstack-gateway-bridge:4",
"status": "Up 2 days",
"ports": ""
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-rest-api-1",
"image": "chirpstack/chirpstack-rest-api:4",
"status": "Up 2 days",
"ports": ""
},
{
"name": "smart-city-grafana",
"image": "grafana/grafana:10.2.0",
"status": "Up 2 days",
"ports": "0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp"
},
{
"name": "smart-city-influxdb",
"image": "influxdb:2.7-alpine",
"status": "Up 2 days (healthy)",
"ports": "0.0.0.0:8086->8086/tcp, [::]:8086->8086/tcp"
},
{
"name": "smart-city-kepler",
"image": "smart-city-kepler:latest",
"status": "Up 2 days",
"ports": "80/tcp, 8080/tcp"
},
{
"name": "smart-city-loki",
"image": "grafana/loki:latest",
"status": "Up 2 days",
"ports": "0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp"
},
{
"name": "smart-city-prometheus-brokers",
"image": "prom/prometheus:latest",
"status": "Exited (255) 2 days ago",
"ports": ""
},
{
"name": "smart-city-promtail",
"image": "grafana/promtail:latest",
"status": "Up 2 days",
"ports": ""
},
{
"name": "smart-city-pulsar-manager-db",
"image": "postgres:15-alpine",
"status": "Exited (0) 2 days ago",
"ports": ""
},
{
"name": "smart-city-pulsar-manager",
"image": "apachepulsar/pulsar-manager:v0.2.0",
"status": "Exited (137) 2 days ago",
"ports": ""
},
{
"name": "smart-city-pulsar",
"image": "apachepulsar/pulsar:3.2.0",
"status": "Exited (137) 2 days ago",
"ports": ""
},
{
"name": "smart-city-redpanda-console",
"image": "docker.redpanda.com/redpandadata/console:v2.5.0",
"status": "Restarting (1) 9 seconds ago",
"ports": ""
},
{
"name": "smart-city-redpanda",
"image": "redpandadata/redpanda:v24.3.14",
"status": "Exited (255) 2 days ago",
"ports": "8081/tcp, 127.0.0.1:8082->8082/tcp, 0.0.0.0:19092->9092/tcp, [::]:19092->9092/tcp, 0.0.0.0:19644->9644/tcp, [::]:19644->9644/tcp"
},
{
"name": "smart-city-simulator",
"image": "smart-city-digital-twin-martinique-simulator",
"status": "Up 55 seconds",
"ports": "8081/tcp"
},
{
"name": "smart-city-telegraf",
"image": "telegraf:1.28",
"status": "Restarting (1) 6 seconds ago",
"ports": ""
}
],
"smart-city-iot": [
{
"name": "smart-city-digital-twin-martinique-mosquitto-1",
"image": "eclipse-mosquitto:2",
"status": "Up 2 days",
"ports": "1883/tcp"
},
{
"name": "smart-city-digital-twin-martinique-redis-1",
"image": "redis:7-alpine",
"status": "Up 2 days",
"ports": "6379/tcp"
},
{
"name": "smart-city-ditto-gateway",
"image": "eclipse/ditto-gateway:latest",
"status": "Up 20 hours",
"ports": "8080/tcp"
},
{
"name": "smart-city-ditto-mongodb",
"image": "mongo:6",
"status": "Up 2 days",
"ports": "27017/tcp"
},
{
"name": "smart-city-ditto-policies",
"image": "eclipse/ditto-policies:latest",
"status": "Up 2 days",
"ports": "8080/tcp"
}
],
"stellio": [
{
"name": "stellio-api-gateway",
"image": "stellio/stellio-api-gateway:latest-dev",
"status": "Up 13 hours",
"ports": "8080/tcp"
},
{
"name": "stellio-kafka",
"image": "confluentinc/cp-kafka:8.1.0",
"status": "Exited (255) 2 days ago",
"ports": "9092/tcp, 0.0.0.0:29092->29092/tcp, [::]:29092->29092/tcp"
},
{
"name": "stellio-postgres",
"image": "stellio/stellio-timescale-postgis:16-2.24.0-3.6",
"status": "Exited (255) 2 days ago",
"ports": "5432/tcp"
},
{
"name": "stellio-search-service",
"image": "stellio/stellio-search-service:latest-dev",
"status": "Exited (255) 2 days ago",
"ports": "8083/tcp"
},
{
"name": "stellio-subscription-service",
"image": "stellio/stellio-subscription-service:latest-dev",
"status": "Exited (255) 2 days ago",
"ports": "8084/tcp"
}
],
"thingsboard": [
{
"name": "docker_tb-js-executor_10",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 15 seconds ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_1",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 24 seconds",
"ports": ""
},
{
"name": "docker_tb-js-executor_2",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 23 seconds ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_3",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 23 seconds ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_4",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (137) 15 seconds ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_5",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 26 seconds",
"ports": ""
},
{
"name": "docker_tb-js-executor_6",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) Less than a second ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_7",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 29 seconds",
"ports": ""
},
{
"name": "docker_tb-js-executor_8",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 22 seconds ago",
"ports": ""
},
{
"name": "docker_tb-js-executor_9",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (137) 13 seconds ago",
"ports": ""
},
{
"name": "docker_tb-rule-engine1_1",
"image": "thingsboard/tb-node:latest",
"status": "Created",
"ports": ""
},
{
"name": "docker_tb-rule-engine2_1",
"image": "thingsboard/tb-node:latest",
"status": "Created",
"ports": ""
},
{
"name": "docker_tb-web-ui1_1",
"image": "thingsboard/tb-web-ui:latest",
"status": "Up 2 days",
"ports": "0.0.0.0:32769->8080/tcp, [::]:32769->8080/tcp"
},
{
"name": "docker_tb-web-ui2_1",
"image": "thingsboard/tb-web-ui:latest",
"status": "Up 2 days",
"ports": "0.0.0.0:32770->8080/tcp, [::]:32770->8080/tcp"
}
],
"thingsboard-postgres": [
{
"name": "thingsboard-postgres",
"image": "postgres:15-alpine",
"status": "Up 2 days (healthy)",
"ports": "5432/tcp"
}
],
"thingsboard-rabbitmq": [
{
"name": "thingsboard-rabbitmq",
"image": "rabbitmq:3.12-management",
"status": "Up 2 days (healthy)",
"ports": "4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp"
}
],
"traefik": [
{
"name": "traefik",
"image": "traefik:v3.1",
"status": "Up 33 hours",
"ports": "0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8404->8404/tcp, [::]:8404->8404/tcp"
}
],
"yaade": [
{
"name": "esperotech",
"image": "esperotech/yaade:latest",
"status": "Up 2 days",
"ports": "0.0.0.0:9339->9339/tcp, [::]:9339->9339/tcp"
}
]
}
}

View File

@@ -0,0 +1,49 @@
# Smart City Digital Twin — Architecture État Actuel (snapshot)
> **Date**: 2026-05-25 ~18:45 UTC
> **Total containers**: 117
## 📡 Pipeline Données (IOT → Stockage → Visualisation)
```
┌──────────────┐ MQTT topics: ┌──────────┐ ┌───────────┐ ┌────────────┐
│ Simulator │──── smartcity/●/● ──▶│ EMQX │────▶│ Telegraf ────▶│ InfluxDB │
│ (60 sensors)│ " │ (v5.0) │ │ (mqtt_ │ │ (v2.7) │
│ │──── smartcity/●/● ──▶│ │ │ consumer)│ │ │
│ ENABLE_BUNKER│ " │ │ │ influxdb │────▶│ bucket: │
│ =0 (off) │ │ │ │ _v2) │ │ "smartcity"│
└──────────────┘ └──────────┘ └───────────┘ └─────┬──────┘
Mosquitto (chirpstack) ◀── allow_anonymous=true ── config mosquitto.conf │
(no data visible in logs yet) │
┌────────────┐
│ Grafana │
│ Dashboard │
│ Smart City │
└────────────┘
```
## 🏗️ Stacks actives (principales)
| Stack | Containers | État | Réseau |
|-------|-----------|------|--------|
| **OpenRemote** | postgresql (timescaledb-ha), keycloak, manager | PG: starting, KC: healthy, Manager: starting | smartcity-shared + openremote_default |
| **Smart City Core** | simulator, telegraf, grafana, influxdb, prometheus | UP | smartcity-shared |
| **FIWARE GIS** | orion-ld, orionproxy | healthy | smartcity-shared |
| **ChirpStack** | chirpstack, mosquitto, postgres, redis | UP | dédié + smartcity-shared |
| **Ditto** | gateway, policies, mongodb | UP/restarting | dédié |
| **Contexus** | app (unhealthy), postgres (healthy), redis (healthy) | mixed | smartcity-shared |
| **Mainflux** | 15+ microservices, mqtt, jaeger (exited) | mixed | dédié |
| **Stellio** | api-gateway (UP), search+subscription+kafka+postgres (exited) | broken | dédié |
| **Traefik** | traefik:v3.1 | UP | traefik-public |
## ⚠️ Points connus
- **OpenRemote** : crash loop corrigé (image PG changée), à redémarrer
- **Telegraf** : fixé (noms containers + BunkerM désactivé)
- **Stellio** : cassé (kafka + postgres exited) — NGSI-LD lowest priority
- **Contexus** : app unhealthy
- **Pulsar/Redpanda** : arrêtés (stabilité CPU)
- **BunkerM** : unhealthy, port 1900 (port MQTT originel)
- **Simulator** : MQTT OK 1/2 — un seul broker sur deux (Mosquitto?)

View File

@@ -0,0 +1,825 @@
{
"timestamp": "2026-05-25T18:09:53.673741+00:00",
"total": 117,
"containers": [
{
"name": "openremote-postgresql",
"image": "timescale/timescaledb-ha:pg15",
"status": "Created",
"ports": "",
"networks": "smartcity-shared"
},
{
"name": "openremote-manager",
"image": "openremote/manager:latest",
"status": "Up 3 minutes (health: starting)",
"ports": "1883/tcp, 8080/tcp, 8443/tcp",
"networks": "smartcity-shared"
},
{
"name": "openremote-keycloak",
"image": "quay.io/keycloak/keycloak:24.0",
"status": "Up 27 hours (healthy)",
"ports": "8080/tcp, 8443/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-simulator",
"image": "smart-city-simulator",
"status": "Up 2 days",
"ports": "8081/tcp",
"networks": "traefik-public,openremote_default,smartcity-shared"
},
{
"name": "traefik",
"image": "traefik:v3.1",
"status": "Up 3 days",
"ports": "0.0.0.0:80->80/tcp, [::]:80->80/tcp, 0.0.0.0:443->443/tcp, [::]:443->443/tcp, 0.0.0.0:8404->8404/tcp, [::]:8404->8404/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-loki",
"image": "grafana/loki:latest",
"status": "Up 4 days",
"ports": "0.0.0.0:3100->3100/tcp, [::]:3100->3100/tcp",
"networks": "traefik-public,smartcity-shared"
},
{
"name": "smart-city-promtail",
"image": "grafana/promtail:latest",
"status": "Up 4 days",
"ports": "",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "localai-api",
"image": "localai/localai:latest",
"status": "Up 5 days (healthy)",
"ports": "8080/tcp",
"networks": "traefik-public"
},
{
"name": "mainfluxlabs-mqtt",
"image": "mainfluxlabs/mqtt:v0.36.1",
"status": "Up 5 days",
"ports": "",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "docker_tb-js-executor_10",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 36 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_8",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 30 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_9",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 9 seconds ago",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-web-ui1_1",
"image": "thingsboard/tb-web-ui:latest",
"status": "Up 5 days",
"ports": "0.0.0.0:32769->8080/tcp, [::]:32769->8080/tcp",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_6",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 19 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_zookeeper_1",
"image": "zookeeper:3.8.1",
"status": "Up 5 days",
"ports": "2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp, [::]:2181->2181/tcp, 8080/tcp, 0.0.0.0:32768->2181/tcp, [::]:32768->2181/tcp",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_7",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 10 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_4",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 1 second ago",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_5",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 11 seconds ago",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_2",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 15 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_1",
"image": "thingsboard/tb-js-executor:latest",
"status": "Up 22 seconds",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-js-executor_3",
"image": "thingsboard/tb-js-executor:latest",
"status": "Restarting (0) 6 seconds ago",
"ports": "",
"networks": "docker_default"
},
{
"name": "docker_tb-web-ui2_1",
"image": "thingsboard/tb-web-ui:latest",
"status": "Up 5 days",
"ports": "0.0.0.0:32770->8080/tcp, [::]:32770->8080/tcp",
"networks": "docker_default"
},
{
"name": "contexus-app",
"image": "contexusio/contexus:latest",
"status": "Up 3 days (unhealthy)",
"ports": "15000/tcp",
"networks": "contexus-iot-network,smartcity-shared,traefik-public"
},
{
"name": "contexus-postgres",
"image": "postgres:16",
"status": "Up 5 days (healthy)",
"ports": "5432/tcp",
"networks": "contexus-iot-network"
},
{
"name": "contexus-redis",
"image": "redis:7-alpine",
"status": "Up 5 days (healthy)",
"ports": "6379/tcp",
"networks": "contexus-iot-network"
},
{
"name": "smart-city-kepler",
"image": "smart-city-kepler:latest",
"status": "Up 5 days",
"ports": "80/tcp, 8080/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "postgis-smartcity",
"image": "postgis/postgis:15-3.4",
"status": "Up 5 days (healthy)",
"ports": "0.0.0.0:5433->5432/tcp, [::]:5433->5432/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-ditto-policies",
"image": "eclipse/ditto-policies:latest",
"status": "Up 5 days",
"ports": "8080/tcp",
"networks": "traefik-public"
},
{
"name": "smart-city-ditto-gateway",
"image": "eclipse/ditto-gateway:latest",
"status": "Up 3 days",
"ports": "8080/tcp",
"networks": "traefik-public"
},
{
"name": "smart-city-ditto-mongodb",
"image": "mongo:6",
"status": "Up 5 days",
"ports": "27017/tcp",
"networks": "traefik-public"
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-rest-api-1",
"image": "chirpstack/chirpstack-rest-api:4",
"status": "Up 5 days",
"ports": "",
"networks": "smartcity-shared"
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-1",
"image": "chirpstack/chirpstack:latest",
"status": "Up 5 days",
"ports": "",
"networks": "smartcity-shared"
},
{
"name": "agentgateway",
"image": "cr.agentgateway.dev/agentgateway:latest",
"status": "Up 5 days",
"ports": "3000/tcp, 15000/tcp",
"networks": "traefik-public"
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-gateway-bridge-basicstation-1",
"image": "chirpstack/chirpstack-gateway-bridge:4",
"status": "Up 5 days",
"ports": "",
"networks": "traefik-public,smartcity-shared"
},
{
"name": "smart-city-digital-twin-martinique-chirpstack-gateway-bridge-1",
"image": "chirpstack/chirpstack-gateway-bridge:4",
"status": "Up 5 days",
"ports": "0.0.0.0:1700->1700/udp, [::]:1700->1700/udp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-digital-twin-martinique-mosquitto-1",
"image": "eclipse-mosquitto:2",
"status": "Up 5 days",
"ports": "1883/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-digital-twin-martinique-redis-1",
"image": "redis:7-alpine",
"status": "Up 5 days",
"ports": "6379/tcp",
"networks": "smartcity-shared"
},
{
"name": "bunkerm-bunkerm-1",
"image": "bunkeriot/bunkerm:latest",
"status": "Up 5 days (unhealthy)",
"ports": "0.0.0.0:1900->1900/tcp, [::]:1900->1900/tcp, 0.0.0.0:2000->2000/tcp, [::]:2000->2000/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "chirpstack-redis-1",
"image": "redis:7-alpine",
"status": "Up 5 days",
"ports": "6379/tcp",
"networks": "smartcity-shared"
},
{
"name": "chirpstack-mosquitto-1",
"image": "eclipse-mosquitto:2",
"status": "Up 5 days",
"ports": "1883/tcp",
"networks": "smartcity-shared"
},
{
"name": "chirpstack-postgres-1",
"image": "postgres:14-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-prometheus-brokers",
"image": "prom/prometheus:latest",
"status": "Up 14 hours",
"ports": "",
"networks": ""
},
{
"name": "fiware-gis-quickstart-orionproxy-1",
"image": "fiware-gis-quickstart-orionproxy",
"status": "Up 5 days",
"ports": "127.0.0.1:1026->80/tcp",
"networks": "fiware-gis-quickstart_fiware"
},
{
"name": "fiware-gis-quickstart-orion-1",
"image": "quay.io/fiware/orion-ld",
"status": "Up 5 days (healthy)",
"ports": "127.0.0.1:2026->1026/tcp",
"networks": "fiware-gis-quickstart_fiware,traefik-public"
},
{
"name": "fiware-gis-quickstart-mongo-db-1",
"image": "mongo:4.2",
"status": "Up 5 days",
"ports": "127.0.0.1:27017->27017/tcp",
"networks": "fiware-gis-quickstart_fiware"
},
{
"name": "smart-city-influxdb",
"image": "influxdb:2.7-alpine",
"status": "Up 5 days (healthy)",
"ports": "0.0.0.0:8086->8086/tcp, [::]:8086->8086/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "smart-city-telegraf",
"image": "telegraf:1.28",
"status": "Up 2 hours",
"ports": "8092/udp, 8125/udp, 8094/tcp",
"networks": "smartcity-shared"
},
{
"name": "smart-city-grafana",
"image": "grafana/grafana:10.2.0",
"status": "Up 5 days",
"ports": "0.0.0.0:3001->3000/tcp, [::]:3001->3000/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "docker-exporter",
"image": "docker-exporter:latest",
"status": "Up 5 days",
"ports": "0.0.0.0:8005->8005/tcp, [::]:8005->8005/tcp",
"networks": "bridge"
},
{
"name": "mainfluxlabs-http",
"image": "mainfluxlabs/http:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8185->8185/tcp, [::]:8185->8185/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-rules",
"image": "mainfluxlabs/rules:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9027->9027/tcp, [::]:9027->9027/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-converters",
"image": "mainfluxlabs/converters:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8195->8195/tcp, [::]:8195->8195/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-smtp-notifier",
"image": "mainfluxlabs/smtp-notifier:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9023->9023/tcp, [::]:9023->9023/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-modbus",
"image": "mainfluxlabs/modbus:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9028->9028/tcp, [::]:9028->9028/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-ws",
"image": "mainfluxlabs/ws:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8190->8190/tcp, [::]:8190->8190/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-webhooks",
"image": "mainfluxlabs/webhooks:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9021->9021/tcp, [::]:9021->9021/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-downlinks",
"image": "mainfluxlabs/downlinks:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9025->9025/tcp, [::]:9025->9025/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-alarms",
"image": "mainfluxlabs/alarms:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9026->9026/tcp, [::]:9026->9026/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-filestore",
"image": "mainfluxlabs/filestore:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9022->9022/tcp, [::]:9022->9022/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-coap",
"image": "mainfluxlabs/coap:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:5683->5683/tcp, 0.0.0.0:5683->5683/udp, [::]:5683->5683/tcp, [::]:5683->5683/udp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-things",
"image": "mainfluxlabs/things:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8182-8183->8182-8183/tcp, [::]:8182-8183->8182-8183/tcp, 0.0.0.0:8989->8989/tcp, [::]:8989->8989/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-users",
"image": "mainfluxlabs/users:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8180->8180/tcp, [::]:8180->8180/tcp, 0.0.0.0:8184->8184/tcp, [::]:8184->8184/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-auth",
"image": "mainfluxlabs/auth:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8181->8181/tcp, [::]:8181->8181/tcp, 0.0.0.0:8189->8189/tcp, [::]:8189->8189/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-certs",
"image": "mainfluxlabs/certs:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8204->8204/tcp, [::]:8204->8204/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-postgres-writer",
"image": "mainfluxlabs/postgres-writer:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8900->8900/tcp, [::]:8900->8900/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-uiconfigs",
"image": "mainfluxlabs/uiconfigs:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:9029->9029/tcp, [::]:9029->9029/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-mqtt-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-es-redis",
"image": "redis:6.2.2-alpine",
"status": "Up 5 days",
"ports": "6379/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-downlinks-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-things-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days (healthy)",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-rules-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-filestore-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-users-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days (healthy)",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-jaeger",
"image": "jaegertracing/all-in-one:1.53",
"status": "Exited (255) 5 days ago",
"ports": "5775/udp, 4317-4318/tcp, 9411/tcp, 0.0.0.0:5778->5778/tcp, [::]:5778->5778/tcp, 0.0.0.0:14268->14268/tcp, [::]:14268->14268/tcp, 14250/tcp, 6832/udp, 0.0.0.0:16686->16686/tcp, [::]:16686->16686/tcp, 0.0.0.0:6831->6831/udp, [::]:6831->6831/udp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-mosquitto",
"image": "eclipse-mosquitto:2.0",
"status": "Up 5 days",
"ports": "1883/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-alarms-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-auth-redis",
"image": "redis:6.2.2-alpine",
"status": "Up 5 days",
"ports": "6379/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-modbus-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-broker",
"image": "nats:2.2.4-alpine",
"status": "Up 5 days",
"ports": "6222/tcp, 0.0.0.0:4222->4222/tcp, [::]:4222->4222/tcp, 8222/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "mainfluxlabs-webhooks-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-postgres",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-smtp-notifier-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-certs-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-postgres-reader",
"image": "mainfluxlabs/postgres-reader:v0.36.1",
"status": "Up 5 days",
"ports": "0.0.0.0:8905->8905/tcp, [::]:8905->8905/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-auth-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-uiconfigs-db",
"image": "postgres:13.3-alpine",
"status": "Up 5 days",
"ports": "5432/tcp",
"networks": "mainflux-network"
},
{
"name": "mainfluxlabs-ui",
"image": "mainfluxlabs/ui:v0.36.1",
"status": "Up 5 days",
"ports": "80/tcp, 0.0.0.0:3000->3000/tcp, [::]:3000->3000/tcp",
"networks": "mainflux-network,smartcity-shared"
},
{
"name": "smart-city-pulsar-manager",
"image": "apachepulsar/pulsar-manager:v0.2.0",
"status": "Exited (137) 5 days ago",
"ports": "",
"networks": "smartcity-shared,traefik-public,pulsar-manager-net"
},
{
"name": "smart-city-pulsar-manager-db",
"image": "postgres:15-alpine",
"status": "Exited (0) 5 days ago",
"ports": "",
"networks": "pulsar-manager-net"
},
{
"name": "thingsboard-rabbitmq",
"image": "rabbitmq:3.12-management",
"status": "Up 5 days (healthy)",
"ports": "4369/tcp, 5671-5672/tcp, 15671-15672/tcp, 15691-15692/tcp, 25672/tcp",
"networks": "smartcity-shared"
},
{
"name": "thingsboard-postgres",
"image": "postgres:15-alpine",
"status": "Up 5 days (healthy)",
"ports": "5432/tcp",
"networks": "smartcity-shared"
},
{
"name": "mapstore-proxy",
"image": "nginx",
"status": "Up 5 days",
"ports": "80/tcp",
"networks": "mapstore2_mapstore-network,traefik-public"
},
{
"name": "mapstore-app",
"image": "geosolutionsit/mapstore2:latest",
"status": "Up 5 days",
"ports": "8080/tcp",
"networks": "mapstore2_mapstore-network,smartcity-shared,traefik-public"
},
{
"name": "mapstore-postgres",
"image": "geosolutions-mapstore/postgis",
"status": "Up 5 days (healthy)",
"ports": "5432/tcp",
"networks": "mapstore2_mapstore-network"
},
{
"name": "emqx_emqx_1",
"image": "emqx/emqx:latest",
"status": "Up 5 days",
"ports": "4370/tcp, 5369/tcp, 8083-8084/tcp, 0.0.0.0:11883->1883/tcp, [::]:11883->1883/tcp, 0.0.0.0:18081->8081/tcp, [::]:18081->8081/tcp, 0.0.0.0:18883->8883/tcp, [::]:18883->8883/tcp, 0.0.0.0:38083->18083/tcp, [::]:38083->18083/tcp",
"networks": "emqx_default,smartcity-shared,traefik-public"
},
{
"name": "smart-city-pulsar",
"image": "apachepulsar/pulsar:3.2.0",
"status": "Exited (137) 5 days ago",
"ports": "",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "smart-city-redpanda",
"image": "redpandadata/redpanda:v24.3.14",
"status": "Exited (255) 5 days ago",
"ports": "8081/tcp, 127.0.0.1:8082->8082/tcp, 0.0.0.0:19092->9092/tcp, [::]:19092->9092/tcp, 0.0.0.0:19644->9644/tcp, [::]:19644->9644/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "smart-city-redpanda-console",
"image": "docker.redpanda.com/redpandadata/console:v2.5.0",
"status": "Up 46 seconds (health: starting)",
"ports": "0.0.0.0:28080->8080/tcp, [::]:28080->8080/tcp",
"networks": "smartcity-shared,traefik-public"
},
{
"name": "stellio-api-gateway",
"image": "stellio/stellio-api-gateway:latest-dev",
"status": "Up 2 days",
"ports": "8080/tcp",
"networks": "stellio-context-broker_default,traefik-public,smartcity-shared"
},
{
"name": "frost_allinone-web-1",
"image": "fraunhoferiosb/frost-server:latest",
"status": "Up 5 days",
"ports": "1883/tcp, 8089/tcp, 127.0.0.1:8090->8080/tcp",
"networks": "frost_allinone_default,smartcity-shared"
},
{
"name": "geoserver_stack-geoserver-1",
"image": "oscarfonts/geoserver:2.25.2",
"status": "Up 5 days (healthy)",
"ports": "8080/tcp",
"networks": "frost_http_default,smartcity-shared,traefik-public"
},
{
"name": "grafana_stack-grafana-1",
"image": "grafana/grafana:latest",
"status": "Up 5 days",
"ports": "3000/tcp",
"networks": "traefik-public,frost_http_default"
},
{
"name": "frost_http-web-1",
"image": "fraunhoferiosb/frost-server-http:latest",
"status": "Up 5 days",
"ports": "8080/tcp",
"networks": "frost_http_default,smartcity-shared"
},
{
"name": "esperotech",
"image": "esperotech/yaade:latest",
"status": "Up 5 days",
"ports": "0.0.0.0:9339->9339/tcp, [::]:9339->9339/tcp",
"networks": "yaade_default"
},
{
"name": "stellio-search-service",
"image": "stellio/stellio-search-service:latest-dev",
"status": "Exited (255) 5 days ago",
"ports": "8083/tcp",
"networks": "traefik-public,smartcity-shared,stellio-context-broker_default"
},
{
"name": "stellio-subscription-service",
"image": "stellio/stellio-subscription-service:latest-dev",
"status": "Exited (255) 5 days ago",
"ports": "8084/tcp",
"networks": "smartcity-shared,stellio-context-broker_default,traefik-public"
},
{
"name": "stellio-kafka",
"image": "confluentinc/cp-kafka:8.1.0",
"status": "Exited (255) 5 days ago",
"ports": "9092/tcp, 0.0.0.0:29092->29092/tcp, [::]:29092->29092/tcp",
"networks": "smartcity-shared,stellio-context-broker_default"
},
{
"name": "stellio-postgres",
"image": "stellio/stellio-timescale-postgis:16-2.24.0-3.6",
"status": "Exited (255) 5 days ago",
"ports": "5432/tcp",
"networks": "smartcity-shared,stellio-context-broker_default"
},
{
"name": "digital-twin-nodered",
"image": "nodered/node-red:3.1",
"status": "Up 5 days (healthy)",
"ports": "0.0.0.0:1880->1880/tcp, [::]:1880->1880/tcp",
"networks": "traefik,smartcity-shared"
},
{
"name": "digital-twin-connector",
"image": "python:3.11-slim",
"status": "Up 30 minutes",
"ports": "",
"networks": "digital-twin_digital-twin,smartcity-shared"
},
{
"name": "gitea",
"image": "gitea/gitea:latest",
"status": "Up 5 days",
"ports": "22/tcp, 3000/tcp",
"networks": "gitea_default,traefik,traefik-public"
},
{
"name": "honcho-grafana-1",
"image": "grafana/grafana:11.4.0",
"status": "Up 5 days (healthy)",
"ports": "127.0.0.1:3088->3000/tcp",
"networks": "honcho_default"
},
{
"name": "honcho-prometheus-1",
"image": "prom/prometheus:v3.2.1",
"status": "Up 5 days (healthy)",
"ports": "127.0.0.1:9091->9090/tcp",
"networks": "honcho_default,smartcity-shared"
},
{
"name": "honcho-api-1",
"image": "honcho:latest",
"status": "Up 31 seconds (health: starting)",
"ports": "127.0.0.1:8088->8000/tcp",
"networks": "traefik-public,honcho_default"
},
{
"name": "honcho-deriver-1",
"image": "honcho-deriver",
"status": "Up 5 days (healthy)",
"ports": "8000/tcp",
"networks": "honcho_default"
},
{
"name": "phpipam-phpipam-web-1",
"image": "phpipam/phpipam-www:latest",
"status": "Up 5 days",
"ports": "127.0.0.1:8085->80/tcp",
"networks": "phpipam_default,traefik-public"
},
{
"name": "phpipam-phpipam-cron-1",
"image": "phpipam/phpipam-cron:latest",
"status": "Up 5 days",
"ports": "80/tcp",
"networks": "phpipam_default"
}
]
}

View File

@@ -27,7 +27,7 @@
# Input: MQTT Consumer - Mosquitto
[[inputs.mqtt_consumer]]
servers = ["tcp://smart-city-mosquitto:1883"]
servers = ["tcp://smart-city-digital-twin-martinique-mosquitto-1:1883"]
topics = [
"airquality/#",
"traffic/#",
@@ -41,23 +41,23 @@
data_format = "json"
qos = 0
# Input: MQTT Consumer - BunkerM (with auth)
[[inputs.mqtt_consumer]]
servers = ["tcp://bunkerm_bunkerm_1:1900"]
topics = [
"airquality/#",
"traffic/#",
"parking/#",
"noise/#",
"weather/#",
"light/#",
"sensor/#",
"smartcity/#"
]
data_format = "json"
qos = 0
username = "bunker"
password = "bunker"
# Input: MQTT Consumer - BunkerM (DISABLED - auth fails, simulator not sending here)
# [[inputs.mqtt_consumer]]
# servers = ["tcp://bunkerm-bunkerm-1:1900"]
# topics = [
# "airquality/#",
# "traffic/#",
# "parking/#",
# "noise/#",
# "weather/#",
# "light/#",
# "sensor/#",
# "smartcity/#"
# ]
# data_format = "json"
# qos = 0
# username = "bunker"
# password = "bunker"
# Output: InfluxDB v2
[[outputs.influxdb_v2]]