# snStatus - Synology NAS System Monitor

> 🖥️ **실시간 시스템 모니터링 & Docker 컨테이너 관리 웹 애플리케이션**

Synology NAS를 위한 현대적이고 직관적인 시스템 모니터링 대시보드입니다. PWA(Progressive Web App)를 지원하여 앱처럼 설치할 수 있으며, 시스템 리소스와 Docker 컨테이너를 언제 어디서나 손쉽게 관리할 수 있습니다.

** 해당 프로젝트는 바이브 코딩을 활용하여 제작 되었습니다.**

![License](https://img.shields.io/badge/license-ISC-blue.svg)
![Node](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen)
![React](https://img.shields.io/badge/react-18.2.0-61dafb)

---

## ✨ 주요 기능

### 📊 실시간 시스템 모니터링
- **리소스 대시보드** : CPU, 메모리, 디스크 사용량 및 네트워크 트래픽 실시간 시각화
- **인터랙티브 차트** : 다양한 기간(1h, 6h, 12h, 24h) 선택 및 상세 툴팁 제공
- **직관적인 UI** : 글래스모피즘(Glassmorphism) 디자인으로 세련된 정보 표시

### 🐳 강력한 Docker 컨테이너 관리
- **실시간 리소스 모니터링**
- **컨테이너 제어** : 시작, 중지, 재시작, 강제 종료 등 원격 제어 지원
- **웹 터미널** : 브라우저에서 컨테이너 내부 쉘(bash/sh) 직접 접속
- **실시간 로그** : 컨테이너 로그 스트리밍 확인

### 🔔 스마트 알림 시스템
- **임계치 알림** : CPU, 메모리, 디스크 사용률이 설정된 한계 초과 시 알림
- **Docker 이벤트** : 컨테이너 비정상 종료 시 즉시 알림
- **PWA 푸시 알림** : 앱을 닫아도 백그라운드에서 시스템 경고 수신

---

## 📦 설치 및 실행

### 사전 요구사항
- **Docker** & **Docker Compose**
- **HTTPS 환경 (PWA 설치를 위한 필수 조건)**

### 설치 방법
git clone을 수행하지 않고 직접 docker-compose.yaml을 작성하여 실행하여도 됩니다.
만약 직접 작성하여 실행을 하실 경우 3 부터 시작하세요.

1. **프로젝트 클론**
   ```bash
   git clone https://github.com/ElppaDev/snStatus.git
   cd snStatus
   ```

2. **Docker Compose 직접 작성**
   ```yaml
   services:
     backend:
       image: sa8001/snstatus-backend:v0.1.5
       container_name: snstatus-backend
       restart: always
       environment:
         - NODE_ENV=production
       privileged: true
       volumes:
         - /:/host:ro
         - /proc:/host/proc:ro
         - /sys:/host/sys:ro
         - /var/run/docker.sock:/var/run/docker.sock
         - ./data:/app/data
       ports:
         - "8001:8001"
   
     frontend:
       image: sa8001/snstatus-frontend:v0.1.5
       container_name: snstatus-frontend
       restart: always
       ports:
         - "3005:80"
       depends_on:
         - backend
   ```

3. **Docker Compose 실행**
   ```bash
   mkdir data
   docker-compose up -d
   ```

4. **접속**
   - 브라우저에서 `http://<NAS-IP>:3005` 접속
   - PWA 앱 설치 및 푸시 알림을 사용하기 위해서는 HTTPS를 통하여 접속하여야 합니다.


---

### 모바일 화면
![홈](/img/1.jpg)
![히스토리](/img/2.jpg)
![도커잠금](/img/3.jpg)
![도커](/img/4.jpg)
![설정](/img/5.jpg)
![갤럭시](/img/6.jpg)
![아이폰](/img/7.jpg)

### PC 화면
![홈](/img/8.jpg)
![히스토리](/img/9.jpg)
![도커잠금](/img/10.jpg)
![도커](/img/11.jpg)
![설정](/img/12.jpg)
