Files
adam-acs/docker-compose.simulator.yml
T
Kevin L'Hereec e857b4fbe7 feat: reference providers system with Wassup integration
- Pluggable multi-provider architecture (ReferenceEngine)
- Wassup provider implementation (HTTP GET + X_WASSUP_USER_IP)
- Auto-resolve references on Inform (BOOT/BOOTSTRAP events)
- References displayed in device Identity card
- REST API: GET/POST references per device
- Config via config/references.json
- Fix event extraction for single EventStruct and numeric EventCodes
- Mock Wassup provisioned by home-device-simulator on device creation
2026-06-02 15:52:16 +02:00

107 lines
3.7 KiB
YAML

# Simulateur de devices TR-069 (home-device-simulator)
#
# Usage :
# docker compose -f docker-compose.yml -f docker-compose.simulator.yml up
#
# Le simulateur partage le réseau et la MongoDB de l'ACS.
# Backend : http://localhost:9898
# UI : http://localhost:3000
services:
simulator:
build:
context: ../home-device-simulator
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "9898:9898"
environment:
HOST: "0.0.0.0"
PORT: "9898"
# L'ACS est accessible via son nom de service Docker
ACSUrl: "http://app:8080/cwmp10"
# URL que l'ACS utilise pour réveiller le simulateur (via le réseau Docker interne)
CONNECTION_REQUEST_URL: "http://simulator:9898/api/v1/device-simulator/http-digest"
PROXY: "false"
BSE_PROXY: "false"
AUTO_DELETE_ENABLED: "false"
# URL du mock Wassup pour provisionner les fiches client à la création d'un device
# Laisser vide pour désactiver
WASSUP_MOCK_URL: "http://wassup-mock:9999"
# Vide = mode permissif : envoie tous les paramètres dans l'Inform (utile pour le dev/test)
# Sinon, liste les catégories sémantiques du simulateur (ex: HardwareVersion,SoftwareVersion,...)
INFORM_ACCEPTED_PARAMS: ""
ADD_IP_AS_HEADER_NAME: ""
IPV4_DENY_PREFIX: ""
IPV6_PREFIXES: ""
# MongoDB séparée pour le simulateur (évite les collisions de collections avec l'ACS)
MONGO_URL: "mongodb://adam:adam@mongodb:27017/home-device-simulator?authSource=admin"
MONGO_DATABASE: "home-device-simulator"
MONGO_CONNECTION_TIMEOUT: "10"
MONGO_SOCKET_TIMEOUT: "30"
MONGO_MAX_CONNECTION_IDLE_TIME: "60"
MONGO_MAX_POOL_SIZE: "10"
MONGO_MIN_POOL_SIZE: "2"
DEVICE_CREATION_BATCH_SIZE: "1000000"
BATCH_SIZE_FOR_BOOTSTRAP: "50"
BATCH_WAIT_FOR_BOOTSTRAP: "0"
DEVICE_DELETION_THREADS: "10"
DEVICE_DELETION_TIME_UNIT: "hr"
DEVICE_DELETION_TIME_CONSTANT: "24"
CONF_LOG_LEVEL: "info"
CONF_LOG_ENCODING: "text"
CONF_LOGS_FILE_LOCATION: "logs/logs.txt"
CONF_JSON_LOGS_FILE_LOCATION: "logs/logs_json.txt"
LOG_CONF_FILE_MAX_SIZE: "10"
LOG_CONF_FILE_MAX_BACKUP_FILES: "-1"
LOG_CONF_FILE_AGE_OF_FILE: "-1"
CREATION_LOG_LEVEL: "info"
CREATION_LOG_ENCODING: "text"
DEVICE_CREATION_LOGS_FILE_LOCATION: "logs/device_creation.txt"
DEVICE_CREATION_JSON_LOGS_FILE_LOCATION: "logs/device_creation_json.txt"
LOG_CREATION_FILE_MAX_SIZE: "10"
LOG_CREATION_FILE_MAX_BACKUP_FILES: "-1"
LOG_CREATION_FILE_AGE_OF_FILE: "-1"
REQUESTS_LOG_LEVEL: "debug"
REQUESTS_LOG_ENCODING: "text"
DEVICE_REQUEST_LOGS_FILE_LOCATION: "logs/device_request.txt"
DEVICE_REQUEST_JSON_LOGS_FILE_LOCATION: "logs/device_request_json.txt"
LOG_REQUEST_FILE_MAX_SIZE: "10"
LOG_REQUEST_FILE_MAX_BACKUP_FILES: "-1"
LOG_REQUEST_FILE_AGE_OF_FILE: "-1"
depends_on:
app:
condition: service_healthy
volumes:
- simulator_logs:/app/logs
simulator-ui:
build:
context: ../home-device-simulator/simulator-ui
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "3000:3000"
volumes:
# env-config.js injecté au runtime pour configurer l'URL du backend côté navigateur
- ./public/simulator-ui-env.js:/usr/share/nginx/html/env-config.js:ro
depends_on:
- simulator
wassup-mock:
build:
context: ../grelieu/gogowassupgo
dockerfile: Dockerfile
restart: unless-stopped
ports:
- "9999:9999"
environment:
PORT: "9999"
DATA_FILE: "/app/data/entries.json"
volumes:
- wassup_data:/app/data
volumes:
simulator_logs:
wassup_data: