Skip to main content

Module-by-Module Reference

PlantPulse Platform comprises several independent modules. Modules and containers are not 1:1 — the six application services each have their own container, but the data lake family works together inside plantpulse-datalake single container.

The data lake family is consolidated in a separate top-level section, Data Lake — covering paths, configuration files, password changes, admin console, pd CLI, operations, components (storage, messaging, analytics, timeseries, cep, workflow, data-gateway), and FAQ.

Module Classification

Module Categories

CategoryModuleDescription
ApplicationsserverWeb console, IIoT engine, REST API
batchScheduled batch processing
data-gatewayREST-based data gateway
sqlDeprecated (2026-09-07) — SQL console merged into data-gateway
datalake-admin-apiAdmin console backend + health API (4950 / 4949)
warehouseIceberg-based data warehouse
ProcessingcepComplex event processing (Esper)
pluginOPC-UA / AAS industrial standard plugins
timeseriesTime series engine + visualization UI
MessagingmessagingKafka + MQTT (HiveMQ). STOMP (ActiveMQ) is retired
StoragestorageCassandra + PostgreSQL + Valkey + MinIO
AnalyticsanalyticsSpark + Hive + Kyuubi + Gravitino + Hadoop
WorkflowworkflowTemporal + Kestra
Data Lake Operationspd CLISingle entry point for startup/shutdown/restart, configuration, node management
Data Lake OperationsAdmin ConsoleBrowser-based operations console (4950 / 4949)
utilitiessetup, backup, recovery, exporter, migrator, mirror-maker, simulator, api, lab

Common Module Structure

Each service module follows a common directory structure and operations interface.

plantpulse-<module>/
├── app/ # 애플리케이션 WAR / JAR
├── bin/
│ ├── start.sh # 포그라운드 시작
│ ├── stop.sh # 정지
│ └── log-viewer.sh # 실시간 로그 (tail -F)
├── server/ 또는 lib/ # 내장 Tomcat 서버 또는 JAR
├── logs/ # system.log (메인 로그)
└── conf/ 또는 config/ # 설정 파일

Common Operations Commands

On the host — manages the entire stack (/opt/kopens/plantpulse-platform-docker/bin/).

TaskCommandNotes
Start allup.shWaits until ready. 0 = operational
Stop alldown.shReverse dependency order, state preserved
Restart allrestart.shDrain → stop → start → wait for ready
Restart one appdocker compose -f compose/docker-compose.yml restart <서비스>Each app runs in its own container
Check statusstatus.sh0 = healthy / 2 = unhealthy
Unified logslogs.shNo args = all containers. Follow with -f

Inside the data lake container — manages infrastructure components individually (enter via ./shell.sh).

TaskCommand
Service status./pd status [서비스]
Restart service./pd restart <서비스>
Render config./pd config render
Cassandra nodes./pd node status · ./pd node repair
Diagnostics./pd doctor

Module Dependencies

PlantPulse starts in stages according to dependency order. When restarting individual modules, understand their dependencies.

Restart caution: Restarting infrastructure modules (storage / messaging / analytics) requires restarting all dependent applications as well. The safest approach is to restart the entire stack on the host with bin/restart.sh.

Port Mapping Summary

AreaPortModule
External80 / 443server (HTTP / HTTPS)
External7443server (admin console HTTPS)
External4950monitor (health check, HTTPS)
Messaging9092 / 9093 / 9094messaging (Kafka)
Messaging1883 / 1884messaging (MQTT)
Storage9042storage (Cassandra)
Storage5432storage (PostgreSQL)
Storage6379storage (Valkey)
Storage9000 / 9001storage (MinIO)
Analytics7077 / 4440analytics (Spark Master / UI)
Analytics10000analytics (Kyuubi)
Analytics19001analytics (Gravitino)
Analytics9083analytics (Hive Metastore)
Time Series7800 / 7801timeseries (Engine)
Time Series3000timeseries (UI)
Workflow7233 / 8233workflow (Temporal)
Workflow8380workflow (Kestra)
Processing7400 / 7401cep
Processing5500data-gateway
Processing11004 / 11005plugin (OPC-UA)
Processing8007 / 8090plugin (AAS V2 / V3)
Applications9500batch
Applications9600warehouse
Applications4000sql

For the full port configuration details, see the Port Configuration page.

Technical Support

For module operations inquiries, contact webmaster@kopens.com.