Skip to main content

Deployment Service

Automated Deployment Service

Auto-generated documentation for the deployment module

Last Updated: 2026-05-06T07:42:11.999Z


Table of Contents


Overview

Automated Deployment Service

File Structure

deployment-service/logger.js
deployment-service/index.js
deployment-service/deployment.js

Components/Modules

deployment-service

deployment-service/index.js

Deployment Service Automated deployment service that listens for deployment triggers via MQTT and handles Docker container updates for the kiosk system. Features: - MQTT-based deployment triggering - Automated Docker image pulling and container restart - Deployment status reporting - Error handling and logging - Reconnection logic for MQTT broker Environment Variables: - MQTT_BROKER_URL: MQTT broker URL (default: mqtt://emqx) - MQTT_USERNAME: MQTT username (default: admin) - MQTT_PASSWORD: MQTT password - MQTT_PORT: MQTT port (default: 1883) - COMPOSE_PROJECT_NAME: Docker Compose project name MQTT Topics: - Subscribe: kiosk/deployment/trigger - Receives deployment requests - Publish: kiosk/deployment/status - Sends deployment status updates

Example:

// Trigger deployment via MQTT: mqtt publish -h emqx -t kiosk/deployment/trigger \ -m '{"service":"kiosk-server","action":"update"}'

MQTT Broker Configuration Configures connection parameters for the MQTT broker

MQTT Client Instance Maintains connection to the MQTT broker for deployment triggers

MQTT Connection Event Handler Subscribes to deployment topics when connected

MQTT Message Event Handler Processes incoming deployment requests

Parameters:

  • topic (string): - MQTT topic that received the message
  • message (Buffer): - Message payload

deployment-service/deployment.js

Execute shell command

Parameters:

  • command (string): - Command to execute

Returns:

  • Promise<{stdout: string, stderr: string}>:

Get Docker Compose project name from environment or default

Returns:

  • string:

Pulls/builds all images first, then starts all services at once

Returns:

  • Promise<object>:

Handle deployment automation via MQTT Executes docker compose pull, build emqx, and up -d

Returns:

  • Promise<object>: result