> For the complete documentation index, see [llms.txt](https://kopens.gitbook.io/plantpulse-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kopens.gitbook.io/plantpulse-platform/admin/modules-detail.md).

# 플랫폼 모듈 상세

이 페이지는 PlantPulse 플랫폼을 구성하는 모든 모듈의 **요약 카탈로그** 입니다. 각 모듈의 상세한 운영 매뉴얼은 [모듈별 상세 매뉴얼](/plantpulse-platform/admin/modules.md) 페이지에서 모듈 단위로 확인하실 수 있습니다.

## 설치 경로

| 환경              | 경로                                 |
| --------------- | ---------------------------------- |
| 바이너리 설치 (권장 표준) | `/opt/kopens/plantpulse-platform/` |
| Docker 컨테이너 내부  | `/home/kopens/`                    |

## 모듈 카탈로그

### 애플리케이션 모듈 (사용자 / 외부 시스템이 직접 접근)

| 모듈                          | 포트            | 역할                        | 상세                                                       |
| --------------------------- | ------------- | ------------------------- | -------------------------------------------------------- |
| **plantpulse-server**       | 80, 443, 7443 | 웹 콘솔 + IIoT 엔진 + REST API | [상세](/plantpulse-platform/admin/modules/server.md)       |
| **plantpulse-batch**        | 9500          | Quartz 스케줄 배치 (집계, 보고서)   | [상세](/plantpulse-platform/admin/modules/batch.md)        |
| **plantpulse-data-gateway** | 5500          | REST + JDBC 데이터 게이트웨이     | [상세](/plantpulse-platform/admin/modules/data-gateway.md) |
| **plantpulse-sql**          | 4000          | SQL 쿼리 서비스                | [상세](/plantpulse-platform/admin/modules/sql.md)          |
| **plantpulse-monitor**      | 4949, 4950    | 시스템 모니터링 + Prometheus     | [상세](/plantpulse-platform/admin/modules/monitor.md)      |
| **plantpulse-warehouse**    | 9600          | Iceberg 레이크하우스 아카이빙       | [상세](/plantpulse-platform/admin/modules/warehouse.md)    |

### 처리 모듈

| 모듈                        | 포트                | 역할                  | 상세                                                     |
| ------------------------- | ----------------- | ------------------- | ------------------------------------------------------ |
| **plantpulse-timeseries** | 7800, 3000        | 시계열 엔진 + Grafana UI | [상세](/plantpulse-platform/admin/modules/timeseries.md) |
| **plantpulse-cep**        | 7400, 7401        | Esper 복합 이벤트 처리     | [상세](/plantpulse-platform/admin/modules/cep.md)        |
| **plantpulse-plugin**     | 11004, 8007, 8090 | OPC-UA + AAS 산업 표준  | [상세](/plantpulse-platform/admin/modules/plugin.md)     |

### 인프라 모듈

| 모듈                       | 포트                       | 구성                                         | 상세                                                    |
| ------------------------ | ------------------------ | ------------------------------------------ | ----------------------------------------------------- |
| **plantpulse-storage**   | 9042, 5432, 6379, 9000   | Cassandra + PostgreSQL + Valkey + MinIO    | [상세](/plantpulse-platform/admin/modules/storage.md)   |
| **plantpulse-messaging** | 9092, 1883, 61000        | Kafka + MQTT(HiveMQ) + STOMP(ActiveMQ)     | [상세](/plantpulse-platform/admin/modules/messaging.md) |
| **plantpulse-analytics** | 7077, 4440, 10000, 19001 | Spark + Hive + Kyuubi + Gravitino + Hadoop | [상세](/plantpulse-platform/admin/modules/analytics.md) |
| **plantpulse-workflow**  | 7233, 8233, 8380         | Temporal + Kestra                          | [상세](/plantpulse-platform/admin/modules/workflow.md)  |

### 운영 / 유틸리티 모듈

| 모듈                            | 용도                                       | 상세                                                                   |
| ----------------------------- | ---------------------------------------- | -------------------------------------------------------------------- |
| **plantpulse-startup**        | 시작/정지/재시작/노드 관리 스크립트 모음 + `env.sh` 단일 설정 | [상세](/plantpulse-platform/admin/modules/startup.md)                  |
| **plantpulse-setup**          | 사이트/에셋/태그 모델 일괄 등록 (CSV)                 | [상세](/plantpulse-platform/admin/modules/utilities.md#setup)          |
| **plantpulse-backup**         | pgBackRest + Medusa + Restic 통합 백업       | [상세](/plantpulse-platform/admin/modules/utilities.md#backup)         |
| **plantpulse-recovery**       | 시계열 데이터 기간별 재처리                          | [상세](/plantpulse-platform/admin/modules/utilities.md#recovery)       |
| **plantpulse-exporter**       | 시계열 CSV 추출 + dsbulk                      | [상세](/plantpulse-platform/admin/modules/utilities.md#exporter)       |
| **plantpulse-migrator**       | Cassandra 서버 간 마이그레이션 (Spark)            | [상세](/plantpulse-platform/admin/modules/utilities.md#migrator)       |
| **plantpulse-mirror-maker**   | Redis → REST 실시간 복제 (HA/DR)              | [상세](/plantpulse-platform/admin/modules/utilities.md#mirror-maker)   |
| **plantpulse-simulator**      | 시계열 데이터 시뮬레이터 (최대 10K MPS)               | [상세](/plantpulse-platform/admin/modules/utilities.md#simulator)      |
| **plantpulse-db-performance** | Cassandra 테이블 성능 측정                      | [상세](/plantpulse-platform/admin/modules/utilities.md#db-performance) |
| **plantpulse-api**            | REST API 클라이언트 Java 라이브러리                | [상세](/plantpulse-platform/admin/modules/utilities.md#api)            |
| **plantpulse-lab**            | Jupyter + Metabase 분석 환경                 | [상세](/plantpulse-platform/admin/modules/utilities.md#lab)            |

## 모듈 공통 구조

```
plantpulse-<모듈>/
├── app/             # 애플리케이션 WAR / JAR
├── bin/             # start.sh / stop.sh / log-viewer.sh
├── server/ 또는 lib/  # 내장 서버 또는 라이브러리
├── conf/ 또는 config/ # 설정 파일
└── logs/system.log   # 메인 로그
```

## 모듈 의존성

```mermaid
flowchart LR
  STG[storage<br/>Cassandra · PG · Valkey · MinIO] --> MSG[messaging<br/>Kafka · MQTT · STOMP]
  STG --> ANL[analytics<br/>Spark · Hive · Kyuubi]
  STG --> WF[workflow<br/>Temporal · Kestra]
  STG --> TS[timeseries]
  STG --> P[plugin]
  ANL --> WH[warehouse]
  MSG --> CEP
  MSG --> DG[data-gateway]
  MSG --> APP[server · batch · sql · monitor]
  CEP --> APP
  DG --> APP
  TS --> APP
  ANL --> SQL_M[sql]
```

> **재시작 시 주의**: 인프라 모듈 (storage / messaging / analytics) 을 재시작하면 의존하는 모든 애플리케이션도 함께 재시작해야 합니다. `plantpulse-startup/restart.sh` 로 전체 재시작이 가장 안전합니다.

## 공통 운영 명령

```bash
# 호스트의 단일 진입점
cd /opt/kopens/plantpulse-platform/plantpulse-startup

./start-daemon.sh                 # 전체 시작 (백그라운드)
./stop.sh                         # 전체 정지
./restart.sh                      # 전체 재시작
./status.sh                       # 포트 기반 상태 점검
./log-viewer.sh                   # 통합 로그 뷰어

./restart-<module>.sh             # 모듈 단위 재시작
```

## 관련 문서

* [모듈별 상세 매뉴얼 인덱스](/plantpulse-platform/admin/modules.md) — 모듈별 깊이 있는 매뉴얼
* [시작 가이드](/plantpulse-platform/installation/startup-guide.md) — 일상 운영 명령
* [운영 관리](/plantpulse-platform/installation/database.md) — 백업 / 업데이트 / 제거
* [포트 및 서비스 관리](/plantpulse-platform/admin/ports.md) — 포트 매핑
* [개발자: 모듈 설명](/plantpulse-platform/developer/modules.md) — 개발자 관점
