From 5fc5a697f997b7f4d03441c2fa3bb9a25dd94832 Mon Sep 17 00:00:00 2001 From: Hyungi Ahn Date: Tue, 12 Aug 2025 11:05:06 +0900 Subject: [PATCH] =?UTF-8?q?=F0=9F=93=8A=20=EB=8D=B0=EC=9D=B4=ED=84=B0?= =?UTF-8?q?=EB=B2=A0=EC=9D=B4=EC=8A=A4=20=ED=85=8C=EC=9D=B4=EB=B8=94=20?= =?UTF-8?q?=EA=B5=AC=EC=84=B1=20=EC=99=84=EB=A3=8C=20=EB=B0=8F=20README=20?= =?UTF-8?q?=EC=97=85=EB=8D=B0=EC=9D=B4=ED=8A=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ✅ 완성된 기능: - 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% 구축 완료 - 프론트엔드: 개발 대기 중 --- README.md | 120 +++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 87 insertions(+), 33 deletions(-) diff --git a/README.md b/README.md index e6d58e3..aff95f4 100644 --- a/README.md +++ b/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' ``` ## 🔐 보안