애플리케이션 관리 (/ui/apps)
게이트웨이는 PLC 데이터 수집 외에도 여러 부속 도구 (대시보드, 데이터 흐름, 모니터링 등) 를 함께 운영할 수 있습니다. 이 화면에서 그 도구들의 상태를 한눈에 보고 시작/중지/재시작 / 새 앱 배포 까지 처리합니다.
이 화면은 host docker 의 컨테이너를 보여줍니다 (/var/run/docker.sock 마운트 사용).
plantpulse-edge 자기 자신은 self-exclude — 목록에 나타나지 않고 start/stop/delete/
inspect/logs/stats/deploy 모든 동작이 IllegalStateException 으로 거부됩니다 (자기 자신을 끄거나
삭제할 수 없게 하기 위함).
plantpulse-edge 의 재시작은 SSH 로 systemctl restart plantpulse-edge.service
또는 상태바의 "재시작" 버튼 (signal file 경유).
1. 화면 열기
메인 화면의 [애플리케이션] 카드를 클릭하거나, 직접 주소창에 /ui/apps 를 입력합니다.
┌────────────────────────────────────────────────────────────┐
│ ⊙ 애플리케이션 — 엣지에 배포된 컨테이너 · 시작/중지/재시작 │
│ [↻ 새로고침] [+ 새 앱 배포] │
├────────────────────────────────────────────────────────────┤
│ ℹ 이 화면에서는 엣지에 설치된 애플리케이션의 현재 상태를 │
│ 한눈에 확인하고, 필요할 때 시작·중지·재시작 할 수 있습니다.│
├────────────────────────────────────────────────────────────┤
│ [앱 카드] [앱 카드] [앱 카드] │
│ [앱 카드] [앱 카드] ... │
└────────────────────────────────────────────────────────────┘
이전 버전의 ← 뒤로가기 버튼은 제거되었습니다 — 좌측 사이드바 / 로고 클릭으로 다른 화면 이동.
2. 상단 액션
| 버튼 | 동작 |
|---|---|
↻ 새로고침 (fa-sync) | apps.refresh() — 즉시 카드 다시 그리기 |
+ 새 앱 배포 (fa-plus) | apps.openDeploy() — 새 컨테이너 정의 + 등록 모달 (사용자 정의 이미지 / 포트 매핑 / 환경 변수) |
화면 우상단 작은 회색 라벨 (#apps_status_label) 에 마지막 갱신 시각 이 가끔 표시되어 자동 폴링 살아있음을 알립니다.
3. 카드 구조
각 앱은 라운드 코너 카드(20px 라디우스 + 회색 테두리)로 표현되며, 호버 시 살짝 떠오릅니다.
| 카드 항목 | 의미 |
|---|---|
| 좌측 큰 아이콘 (사각형, light blue 배경) | 앱 종류 — 컨테이너 이미지 기반 |
| 앱 이름 | 도커 컨테이너 이름 (예: pp-grafana, pp-node-red) |
| 상태 배지 (둥근 캡슐) | running (녹색) / exited dead restarting (빨강) / paused (주황) / created (회색) |
| 이미지 | mono font + 회색 박스. 사용 중인 도커 이미지 (예: grafana/grafana:10.3) |
| 포트 | 클릭 → 새 창에서 앱 화면 자동 오픈 (예: 3000 → http://게이트웨이:3000/) |
| 생성 | 컨테이너 만든 시각 |
| 리소스 | CPU / 메모리 (실행 중인 앱만, docker stats 결과) |
| 액션 영역 (카드 하단) | [시작] [중지] [재시작] [로그] 버튼 — 상태에 따라 활성/비활성 |
화면은 10 초마다 자동 갱신 — 백엔드 /apps/list 호출 후 다시 그립니다.
자주 보이는 부속 앱
| 도구 | 역할 |
|---|---|
| Grafana | 시계열 그래프 / 운영 대시보드 |
| Node-RED | 노-코드 데이터 흐름 / 자동화 |
| HiveMQ (MQTT 브로커) | 메시지 중계 (Sparkplug B 발행처) |
| Cassandra | 시계열 저장소 |
| Portainer | 도커 컨테이너 시각 관리 도구 |
| Uptime Kuma | 단순 가용성 모니터 (죽었나 살았나) |
| File Browser | 웹 파일 매니저 |
설치된 앱은 환경마다 다릅니다. 어떤 앱이 보이는지는 시스템 관리자가 IIoT 플랫폼에서 원격 배포한 결과입니다.
자주 하는 작업
부속 앱 화면 열기
카드의 포트 번호를 클릭 하면 해당 앱의 화면이 새 창으로 열립니다.
- 보통
http://게이트웨이IP:포트/형식으로 자동 연결 - 앱마다 자체 로그인이 필요할 수 있습니다 (예: Grafana, Portainer)
부속 앱 시작 / 중지 / 재시작
| 동작 | 어떻게 | 비고 |
|---|---|---|
| 시작 | 카드의 [시작] 버튼 | 정지 상태일 때만 활성 |
| 중지 | 카드의 [중지] 버튼 | 실행 / 일시정지일 때만 활성 |
| 재시작 | [재시작] 버튼 | 항상 사용 가능 |
확인 창이 한 번 뜨므로 실수로 누르더라도 [취소] 가능합니다.
부속 앱 로그 보기
카드의 [로그] 버튼 → 마지막 200 줄을 검은 화면에 보여줍니다. 앱이 시작 안 될 때 원인 파악 / 시스템 관리자에게 전달용으로 사용하세요.
새로고침
좌측 상단의 [새로고침] 버튼을 눌러 즉시 갱신할 수 있습니다 (자동 10 초 갱신과 별도).
게이트웨이 자체 관리 (상태바 빠른 액션)
화면 좌하단 상태바 의 7개 아이콘으로 게이트웨이 OS / 애플리케이션 자체를 제어합니다 — 모든 페이지 공통.
자세한 동작 / 소요 시간 / 주의사항은 별도 문서 상태바 빠른 액션 에 모아두었습니다.
| 아이콘 | 동작 | 비고 |
|---|---|---|
🎬 (fa-projector) 시스템 리부트 | OS 재부팅 | 약 3~5 분 — 전체 PLC 수집 중단 |
🔁 (fa-repeat-1-alt) 애플리케이션 재시작 | Tomcat / 게이트웨이 SW 만 재시작 | 1 분 이내 |
🗑 (fa-trash) 임시파일 청소 | 임시 / 캐시 정리 | 디스크 부족 시 |
⏱ (fa-stopwatch) 백업 | 설정 + DB 백업 | 백업 / 복구 |
📄 (fa-file-alt) 로그 다운로드 | 진단 로그 zip | 문제 보고 시 첨부 |
🔌 (fa-microchip) O/S 및 펌웨어 업그레이드 | 펌웨어 업데이트 | 신중히 |
☁ (fa-cloud-download) S/W 업그레이드 | 게이트웨이 SW 업데이트 (product.kopens.io) | 우상단 뱃지 업그레이드 가능! 보일 때만 활성 |
재부팅 / 업그레이드 동안에는 PLC 값 수집이 일시 중단 됩니다. 운영 시간 외에 진행하시는 것을 권장드립니다.
게이트웨이 자체 설치
시스템 관리자용 — 새 환경에 처음 설치할 때.
기본 설치는 보통 시스템 관리자가 미리 해두지만 만약 새 환경에 처음 설치한다면 다음 1 라이너 명령으로 일괄 설치할 수 있습니다.
bash < <(curl -s http://product.kopens.io/plantpulse-edge/install.sh)
내부적으로 JDK / Tomcat / Cassandra / 게이트웨이 모두를 설치합니다.
자세한 빌드 / 배포 / 환경설정 절차가 필요하다면 고급 — 설정 파일 가이드 와 고급 — 개발자 노트 를 보세요.
자주 묻는 질문
Q. 애플리케이션이 “중지” 상태인데 시작이 안 돼요
PC 자원이 부족하거나 (메모리 부족 등) 포트 충돌 가능성이 있습니다.
- 메인 화면에서 메모리 / 디스크 게이지 확인
- [설정] → [임시파일 청소] 시도
- 그래도 안 되면 [로그] 버튼으로 에러 메시지 확인 후 시스템 관리자에게 전달
Q. 게이트웨이를 재시작하면 PLC 연결 / 태그가 사라지나요?
아니요. 설정은 안전하게 저장 되어 있어 재시작 후 자동으로 복원되며, “자동 시작” 으로 설정한 PLC 는 자동으로 수집을 다시 시작합니다.
Q. 부속 앱은 게이트웨이와 분리해서 다른 PC 에 둘 수 있나요?
가능하지만 권장 구성은 같은 PC 입니다. 시스템 관리자와 상의하세요.