Compare commits

...

2 Commits

Author SHA1 Message Date
Eric FELIXINE
66a22a2421 Fix: InfluxDB token + bucket iot_data créé
- Token InfluxDB corrigé dans simulator.py (my-super-token)
- Bucket iot_data créé dans InfluxDB
- CrateDB-Stellio ports sécurisés (suppression exposition publique)
- Healthchecks MongoDB/Mosquitto corrigés
- Nettoyage container digital-twin-grafana
2026-05-07 10:41:16 -04:00
Eric FELIXINE
007e7eb2ff Fix: Sécurisation CrateDB-Stellio + healthchecks MongoDB/Mosquitto
- Suppression exposition publique ports CrateDB-Stellio (sécurité)
- Ajout service iot-mongodb avec healthcheck fonctionnel (mongo ping)
- Correction healthcheck Mosquitto (port check au lieu de topic)
- Nettoyage container digital-twin-grafana en conflit
2026-05-07 10:35:52 -04:00
6 changed files with 133593 additions and 6 deletions

View File

@@ -58,7 +58,24 @@ services:
- IOTA_DEFAULT_RESOURCE=/ - IOTA_DEFAULT_RESOURCE=/
- IOTA_DEFAULT_APIKEY=smartcity-mosquitto - IOTA_DEFAULT_APIKEY=smartcity-mosquitto
# Instance 3: BunkerM (Stellio NGSI-LD) # MongoDB for IoT Agents
iot-mongodb:
image: mongo:4.4
container_name: smart-city-iot-mongodb
restart: unless-stopped
networks:
- smartcity-shared
ports:
- "27017:27017"
volumes:
- iot-mongodb-data:/data/db
healthcheck:
test: ["CMD", "mongo", "--eval", "db.adminCommand('ping')"]
interval: 10s
timeout: 5s
retries: 5
# Instance3: BunkerM (Stellio NGSI-LD)
iot-agent-bunkerm: iot-agent-bunkerm:
image: fiware/iotagent-json:latest image: fiware/iotagent-json:latest
container_name: smart-city-iot-agent-bunkerm container_name: smart-city-iot-agent-bunkerm
@@ -89,3 +106,8 @@ networks:
external: true external: true
traefik-public: traefik-public:
external: true external: true
volumes:
iot-mongodb-data:
external: true
name: smart-city-digital-twin-martinique_iot-mongodb-data

View File

@@ -18,7 +18,7 @@ services:
- mosquitto-logs:/mosquitto/log - mosquitto-logs:/mosquitto/log
command: mosquitto -c /mosquitto/config/mosquitto.conf command: mosquitto -c /mosquitto/config/mosquitto.conf
healthcheck: healthcheck:
test: ["CMD", "mosquitto_sub", "-h", "localhost", "-p", "1883", "-t", "test", "-W", "1"] test: ["CMD-SHELL", "bash -c 'cat < /dev/tcp/localhost/1883'"]
interval: 30s interval: 30s
timeout: 10s timeout: 10s
retries: 3 retries: 3

View File

@@ -37,9 +37,7 @@ services:
smartcity-shared: smartcity-shared:
aliases: aliases:
- smart-city-cratedb-stellio - smart-city-cratedb-stellio
ports: # Ports removed for security - accessed only via Docker network by QuantumLeap
- "4201:4200"
- "5433:5432"
volumes: volumes:
- smart-city-cratedb-stellio-data:/data - smart-city-cratedb-stellio-data:/data
command: -Ccluster.name=stellio command: -Ccluster.name=stellio

133532
simulator.log Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -92,7 +92,7 @@ ENABLE_INFLUX = os.environ.get("ENABLE_INFLUX", "1").lower() in ("1", "true", "
INFLUX_URL = os.environ.get("INFLUX_URL", "http://smart-city-influxdb:8086") # InfluxDB v2 sur smartcity-shared INFLUX_URL = os.environ.get("INFLUX_URL", "http://smart-city-influxdb:8086") # InfluxDB v2 sur smartcity-shared
INFLUX_ORG = os.environ.get("INFLUX_ORG", "digitribe") INFLUX_ORG = os.environ.get("INFLUX_ORG", "digitribe")
INFLUX_BUCKET = os.environ.get("INFLUX_BUCKET", "iot_data") INFLUX_BUCKET = os.environ.get("INFLUX_BUCKET", "iot_data")
INFLUX_TOKEN = os.environ.get("INFLUX_TOKEN", "my-super-secret-admin-token") INFLUX_TOKEN = os.environ.get("INFLUX_TOKEN", "my-super-token")
# Prometheus metrics HTTP server # Prometheus metrics HTTP server
METRICS_PORT = int(os.environ.get("METRICS_PORT", "8001")) METRICS_PORT = int(os.environ.get("METRICS_PORT", "8001"))

View File

@@ -0,0 +1,35 @@
# ThingsBoard Configuration
# Basic settings for ThingsBoard CE
database:
type: "${DATABASE_TYPE:sql}"
entities:
type: "${DATABASE_ENTITIES_TYPE:sql}"
spring:
datasource:
url: "${SPRING_DATASOURCE_URL:jdbc:postgresql://thingsboard-postgres:5432/thingsboard}"
username: "${SPRING_DATASOURCE_USERNAME:postgres}"
password: "${SPRING_DATASOURCE_PASSWORD:Digitribe972}"
hikari:
maximumPoolSize: "${DATABASE_MAX_CONNECTIONS:100}"
# MQTT settings
mqtt:
bind_address: "${MQTT_BIND_ADDRESS:0.0.0.0}"
bind_port: "${MQTT_BIND_PORT:1883}"
enabled: "${MQTT_ENABLED:true}"
# HTTP settings
http:
bind_address: "${HTTP_BIND_ADDRESS:0.0.0.0}"
bind_port: "${HTTP_BIND_PORT:8080}"
enabled: "${HTTP_ENABLED:true}"
# Transport configuration
transport:
tenant:
mqtt:
enabled: "${MQTT_ENABLED:true}"
http:
enabled: "${HTTP_ENABLED:true}"