diff --git a/CODING_CONVENTIONS.md b/CODING_CONVENTIONS.md index 1d74e7e..cb5ed35 100644 --- a/CODING_CONVENTIONS.md +++ b/CODING_CONVENTIONS.md @@ -65,4 +65,24 @@ - **DS1525+ NAS IP**: `192.168.1.227` (문서 저장소) - **NAS 마운트 포인트**: `/Volumes/DS1525+` - **서버 포트**: `8080` (FastAPI 웹 서비스) -- **대시보드 접속**: `http://192.168.1.122:8080/dashboard` \ No newline at end of file +- **대시보드 접속**: `http://192.168.1.122:8080/dashboard` + +## 7. 서버 운영 및 배포 (macOS) + +이 서버는 24/7 무중단 운영을 위해 macOS의 `launchd` 서비스를 통해 관리됩니다. 이를 통해 시스템 재부팅 시 자동 시작 및 예기치 않은 종료 시 자동 재시작이 보장됩니다. + +- **서비스 설정 파일**: `~/Library/LaunchAgents/com.nllb-translation-system.app.plist` + - 이 파일은 서비스의 실행 방법, 로그 경로, 자동 재시작 여부 등을 정의합니다. + +- **서비스 제어 명령어**: + - **시작**: `launchctl start com.nllb-translation-system.app` + - **중지**: `launchctl stop com.nllb-translation-system.app` + - **재시작 (설정 파일 수정 후)**: + 1. `launchctl unload ~/Library/LaunchAgents/com.nllb-translation-system.app.plist` + 2. `launchctl load ~/Library/LaunchAgents/com.nllb-translation-system.app.plist` + +- **로그 확인**: + - **일반 로그**: `tail -f logs/service.log` + - **에러 로그**: `tail -f logs/service_error.log` + +- **주의**: 개발 및 디버깅 시에는 `launchd` 서비스를 중지(`launchctl stop ...`)한 후, 터미널에서 직접 `python src/fastapi_with_dashboard.py`를 실행해야 포트 충돌이 발생하지 않습니다. \ No newline at end of file diff --git a/logs/service.log b/logs/service.log new file mode 100644 index 0000000..e41e1aa --- /dev/null +++ b/logs/service.log @@ -0,0 +1,9 @@ +번역 시스템 초기화 (디바이스: mps) +모델 로딩 중... + NLLB 번역 모델... +INFO: 192.168.1.122:51436 - "GET /api/dashboard HTTP/1.1" 200 OK + NLLB 모델 로드 완료 + KoBART 요약 모델... + KoBART 모델 로드 완료 +모델 로딩 완료! +INFO: 192.168.1.122:51443 - "GET /api/dashboard HTTP/1.1" 200 OK diff --git a/logs/service_error.log b/logs/service_error.log new file mode 100644 index 0000000..e59f1df --- /dev/null +++ b/logs/service_error.log @@ -0,0 +1,23 @@ +2025-07-25 06:59:45,307 - __main__ - INFO - 🚀 Mac Mini AI 번역 서버 with 대시보드 (v2.1) +2025-07-25 06:59:45,307 - __main__ - INFO - 📡 서버 주소: http://192.168.1.122:20080 +2025-07-25 06:59:45,307 - __main__ - INFO - 📊 대시보드: http://192.168.1.122:20080/dashboard +2025-07-25 06:59:45,307 - __main__ - INFO - 📁 NAS 주소: 192.168.1.227 +INFO: Started server process [20661] +INFO: Waiting for application startup. +2025-07-25 06:59:45,328 - __main__ - INFO - 🚀 Mac Mini AI 번역 서버 시작 (v2.1) +2025-07-25 06:59:45,328 - __main__ - INFO - 📍 Mac Mini IP: 192.168.1.122 +2025-07-25 06:59:45,328 - __main__ - INFO - 📍 NAS IP: 192.168.1.227 +2025-07-25 06:59:45,328 - __main__ - INFO - -------------------------------------------------- +2025-07-25 06:59:45,328 - background_ai_service - INFO - 🚀 백그라운드 AI 서비스 시작 +2025-07-25 06:59:45,328 - background_ai_service - INFO - ✅ 백그라운드 서비스 준비 완료 +2025-07-25 06:59:45,351 - __main__ - INFO - ✅ NAS 연결 정상: /Volumes/Media +2025-07-25 06:59:45,357 - __main__ - INFO - ✅ 폴더 구조 확인/생성 완료 +INFO: Application startup complete. +INFO: Uvicorn running on http://0.0.0.0:20080 (Press CTRL+C to quit) + Loading checkpoint shards: 0%| | 0/3 [00:00 + + + + + Label + com.nllb-translation-system.app + + + ProgramArguments + + + /Users/hyungi/Scripts/nllb-translation-system/nllb_env/bin/python + + /Users/hyungi/Scripts/nllb-translation-system/src/fastapi_with_dashboard.py + + + + WorkingDirectory + /Users/hyungi/Scripts/nllb-translation-system + + + RunAtLoad + + + + KeepAlive + + + + StandardOutPath + /Users/hyungi/Scripts/nllb-translation-system/logs/service.log + + + StandardErrorPath + /Users/hyungi/Scripts/nllb-translation-system/logs/service_error.log + + \ No newline at end of file