📊 데이터베이스 테이블 구성 완료 및 README 업데이트
✅ 완성된 기능: - 5개 핵심 테이블 생성 (devices, users, power_consumption, network_traffic, system_resources) - 기본 사용자 계정 생성 (admin/family) - 기본 디바이스 등록 (Mac Mini M4 Pro, DS1525+, RT6600ax) - Tapo 스마트 플러그 관리 API 완성 - Docker 환경 통합 (포트 9304-9307) 🔧 주요 변경사항: - docker-compose.mac-mini.yml 삭제 및 통합 - 포트 충돌 해결 (9305: MariaDB, 9306: API, 9304: phpMyAdmin, 9307: Redis) - 데이터베이스 스키마 완성 - API 엔드포인트 문서화 📋 현재 상태: - 백엔드 API: 100% 완성 - 데이터베이스: 100% 구성 완료 - Docker 환경: 100% 구축 완료 - 프론트엔드: 개발 대기 중
This commit is contained in:
120
README.md
120
README.md
@@ -4,6 +4,13 @@
|
||||
|
||||
> **Mac Mini M4 Pro 전용 버전** - 고성능 홈 서버 환경에 최적화
|
||||
|
||||
## 📋 **현재 개발 상태 (v1.0)**
|
||||
|
||||
✅ **백엔드 API 완성** - Tapo 스마트 플러그 관리, 디바이스 모니터링
|
||||
✅ **데이터베이스 구성 완료** - 5개 테이블, 기본 데이터 설정
|
||||
✅ **Docker 환경 구축** - MariaDB, Redis, API 서버 통합 운영
|
||||
🚧 **프론트엔드 웹 대시보드** - 개발 대기 중
|
||||
|
||||
## 🎯 주요 기능
|
||||
|
||||
### ✅ **구현 완료**
|
||||
@@ -11,8 +18,10 @@
|
||||
- **전력 소비 추적**: Tapo P110 플러그를 통한 실시간 전력 데이터 수집
|
||||
- **확장 가능한 아키텍처**: 설정 파일 기반 기기 관리
|
||||
- **RESTful API**: Express.js 기반 완전한 백엔드 API
|
||||
- **데이터베이스**: MariaDB를 통한 안정적인 데이터 저장
|
||||
- **데이터베이스**: MariaDB를 통한 안정적인 데이터 저장 및 테이블 구성 완료
|
||||
- **캐시 시스템**: Redis를 통한 고성능 데이터 처리
|
||||
- **사용자 관리**: 관리자/가족 계정 및 역할 기반 시스템
|
||||
- **디바이스 등록**: Mac Mini, NAS, 라우터 기본 디바이스 등록
|
||||
|
||||
### 🚧 **개발 예정**
|
||||
- **웹 대시보드**: 실시간 모니터링 인터페이스
|
||||
@@ -175,13 +184,30 @@ curl http://localhost:9306/api/tapo/power
|
||||
- **Username**: homeuser
|
||||
- **Password**: mac_mini_home_password
|
||||
|
||||
### 테이블 구성
|
||||
|
||||
시스템에는 다음 테이블들이 구성되어 있습니다:
|
||||
|
||||
```yaml
|
||||
✅ devices # 디바이스 관리 (3개 기본 데이터)
|
||||
✅ users # 사용자 관리 (2개 기본 계정)
|
||||
✅ power_consumption # 전력 소비 데이터
|
||||
✅ network_traffic # 네트워크 트래픽 데이터
|
||||
✅ system_resources # 시스템 리소스 데이터
|
||||
```
|
||||
|
||||
### 기본 데이터
|
||||
|
||||
시스템 초기화시 다음 데이터가 자동으로 생성됩니다:
|
||||
|
||||
- **관리자 계정**: admin / admin123
|
||||
- **가족 계정**: family / admin123
|
||||
- **기본 디바이스**: Mac Mini M4 Pro, Synology DS1525+, RT6600ax
|
||||
**기본 계정:**
|
||||
- **관리자 계정**: admin / admin123 (admin 권한)
|
||||
- **가족 계정**: family / admin123 (family 권한)
|
||||
|
||||
**기본 디바이스:**
|
||||
- **Mac Mini M4 Pro** (server, 서재)
|
||||
- **Synology DS1525+** (nas, 서재)
|
||||
- **Synology RT6600ax** (router, 거실)
|
||||
|
||||
## 🔧 개발 가이드
|
||||
|
||||
@@ -218,26 +244,41 @@ docker-compose logs -f api
|
||||
tail -f logs/combined.log
|
||||
```
|
||||
|
||||
## 🐳 Docker 명령어 (Mac Mini)
|
||||
## 🐳 Docker 관리
|
||||
|
||||
### 기본 명령어
|
||||
|
||||
```bash
|
||||
# 모든 서비스 시작 (Mac Mini 전용)
|
||||
docker-compose -f docker-compose.mac-mini.yml up -d
|
||||
# 모든 서비스 시작
|
||||
docker-compose up -d
|
||||
|
||||
# 특정 서비스만 시작
|
||||
docker-compose -f docker-compose.mac-mini.yml up -d mariadb redis
|
||||
docker-compose up -d mariadb redis
|
||||
|
||||
# 로그 확인
|
||||
docker-compose -f docker-compose.mac-mini.yml logs -f
|
||||
docker-compose logs -f
|
||||
|
||||
# 컨테이너 상태 확인
|
||||
docker-compose -f docker-compose.mac-mini.yml ps
|
||||
docker-compose ps
|
||||
|
||||
# 서비스 중지
|
||||
docker-compose -f docker-compose.mac-mini.yml down
|
||||
docker-compose down
|
||||
|
||||
# 볼륨까지 삭제 (주의: 데이터 손실)
|
||||
docker-compose -f docker-compose.mac-mini.yml down -v
|
||||
docker-compose down -v
|
||||
```
|
||||
|
||||
### 개별 서비스 관리
|
||||
|
||||
```bash
|
||||
# API 서버 재시작
|
||||
docker-compose restart api
|
||||
|
||||
# 데이터베이스 백업
|
||||
docker exec home_mariadb mysqldump -u homeuser -pmac_mini_home_password home_management > backup.sql
|
||||
|
||||
# 데이터베이스 복원
|
||||
docker exec -i home_mariadb mariadb -u homeuser -pmac_mini_home_password home_management < backup.sql
|
||||
```
|
||||
|
||||
## 🔍 문제 해결
|
||||
@@ -246,45 +287,55 @@ docker-compose -f docker-compose.mac-mini.yml down -v
|
||||
|
||||
```bash
|
||||
# MariaDB 컨테이너 상태 확인
|
||||
docker-compose -f docker-compose.mac-mini.yml ps mariadb
|
||||
docker-compose ps mariadb
|
||||
|
||||
# 데이터베이스 로그 확인
|
||||
docker-compose -f docker-compose.mac-mini.yml logs mariadb
|
||||
docker-compose logs mariadb
|
||||
|
||||
# 컨테이너 재시작
|
||||
docker-compose -f docker-compose.mac-mini.yml restart mariadb
|
||||
docker-compose restart mariadb
|
||||
|
||||
# Mac Mini 재배포
|
||||
./scripts/deploy-mac-mini.sh
|
||||
# 데이터베이스 연결 테스트
|
||||
docker exec home_mariadb mariadb -u homeuser -pmac_mini_home_password home_management -e "SELECT 1"
|
||||
```
|
||||
|
||||
### 포트 충돌
|
||||
|
||||
기본 포트가 사용 중인 경우 `docker-compose.mac-mini.yml`에서 포트를 변경하세요:
|
||||
현재 사용 중인 포트들:
|
||||
- **API**: 9306
|
||||
- **MariaDB**: 9305
|
||||
- **phpMyAdmin**: 9304
|
||||
- **Redis**: 9307
|
||||
|
||||
```yaml
|
||||
ports:
|
||||
- "3001:3000" # 3001로 변경
|
||||
```
|
||||
|
||||
### Mac Mini 네트워크 접근 문제
|
||||
포트가 사용 중인 경우 확인:
|
||||
|
||||
```bash
|
||||
# 방화벽 확인
|
||||
sudo pfctl -s all
|
||||
|
||||
# 포트 사용 확인
|
||||
lsof -i :3000
|
||||
lsof -i :9306
|
||||
lsof -i :9305
|
||||
|
||||
# 네트워크 인터페이스 확인
|
||||
ifconfig
|
||||
# 충돌하는 Docker 컨테이너 확인
|
||||
docker ps --filter "publish=9306"
|
||||
```
|
||||
|
||||
### API 서버 문제
|
||||
|
||||
```bash
|
||||
# API 서버 로그 확인
|
||||
docker-compose logs -f api
|
||||
|
||||
# API 헬스체크
|
||||
curl -v http://localhost:9306/health
|
||||
|
||||
# Tapo 라이브러리 설치 확인
|
||||
docker exec home_api npm list tp-link-tapo-connect
|
||||
```
|
||||
|
||||
## 📈 모니터링
|
||||
|
||||
### phpMyAdmin으로 데이터베이스 모니터링
|
||||
|
||||
1. http://localhost:8080 접속 (Mac Mini에서)
|
||||
1. http://localhost:9304 접속
|
||||
2. Server: `mariadb`
|
||||
3. Username: `homeuser`
|
||||
4. Password: `mac_mini_home_password`
|
||||
@@ -293,10 +344,13 @@ ifconfig
|
||||
|
||||
```bash
|
||||
# API 응답 시간 테스트
|
||||
time curl http://localhost:3000/api/devices
|
||||
time curl http://localhost:9306/api/devices
|
||||
|
||||
# 부하 테스트 (Apache Bench)
|
||||
ab -n 1000 -c 10 http://localhost:3000/api/devices
|
||||
ab -n 1000 -c 10 http://localhost:9306/api/devices
|
||||
|
||||
# 데이터베이스 상태 확인
|
||||
curl http://localhost:9306/api/devices | jq '.count'
|
||||
```
|
||||
|
||||
## 🔐 보안
|
||||
|
||||
Reference in New Issue
Block a user