# 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" # 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 volumes: simulator_logs: