Add deploy-production.sh (new):
- Automated deployment to hz-prod-01 (178.104.200.7)
- Service lifecycle management: systemctl stop/start quantengine
- Automatic backup to /home/kjh2064/quantengine_backup
- File transfer via rsync to /home/kjh2064/quantengine_active
- Health checks against public URL and service status
- Rollback instructions with backup restoration
Update deploy-manual.sh:
- Interactive deployment with user confirmation
- Updated for quantengine service (not nginx)
- Deployment path: /home/kjh2064/quantengine_active
- Backup path: /home/kjh2064/quantengine_backup
- Nginx reverse proxy structure documentation
- Comprehensive rollback procedures
Both scripts:
- SSH connection validation (178.104.200.7)
- Environment diagnostics
- Comprehensive logging and error handling
- Support for internal and public IP access
- Pre/post deployment validation
Deployment Architecture:
Public: http://178.104.200.7/quant/
→ Nginx (reverse proxy)
→ localhost:5000 (quantengine service)
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
환경 진단 도구:
diagnose-environment.sh:
- 네트워크 정보 (공인 IP, 내부 IP)
- 디렉토리 구조 (/var/www 경로 확인)
- Nginx 설정 확인
- 파일 권한 및 소유자
- 포트 상태
- 시스템 정보
- Sudo 권한
- Git/Gitea 정보
ENVIRONMENT_DIAGNOSIS.md:
- 진단 절차 가이드
- 실행 방법 (3가지)
- 출력 결과 분석
- 결과 보고 양식
- 빠른 진단 명령어
- 수정 후 다음 단계
목표:
- 정확한 내부 IP 확인 (172.x.x.x)
- 실제 웹 서버 경로 파악
- 웹 서버 사용자 확인
- Nginx 설정 파악
- 권한 구조 파악
결과 수집 후:
- deploy-manual.sh 맞춤 수정
- 모든 배포 문서 업데이트
- 배포 실행
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
네트워크 구조 정정:
원격지 구성:
- 공인 IP: 178.104.200.7 (인터넷 접속)
- 내부 IP: 192.168.123.100 (Gitea & 운영서버)
- Gitea와 운영서버가 같은 원격 서버에 위치
CI/CD 배포:
DEPLOY_HOST: 192.168.123.100 (내부 IP 사용)
→ SSH 연결 (빠르고 안전)
→ /var/www/quant/publish 배포
외부 사용자:
공인 IP (178.104.200.7)
→ nginx 포트포워딩
→ 내부 192.168.123.100
→ http://178.104.200.7/quant/
이점:
- ✅ 내부 네트워크로 배포 (빠름)
- ✅ 공인 IP는 외부 사용자만 사용
- ✅ SSH 보안 강화
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
네트워크 구조 수정:
기존:
- DEPLOY_HOST: 178.104.200.7 (공인 IP)
수정:
- DEPLOY_HOST: 192.168.123.100 (내부 IP)
- Gitea와 운영서버가 같은 내부 네트워크에 있으므로 내부 IP 사용
- 외부 사용자는 공인 IP 178.104.200.7로 접속 (nginx 포트포워딩)
이점:
- ✅ 네트워크 보안 향상 (SSH는 내부 통신)
- ✅ 불필요한 외부 네트워크 통신 제거
- ✅ CI/CD 배포 속도 개선
CI/CD 파이프라인:
Gitea (192.168.123.100)
→ SSH (내부 네트워크, 안전)
→ 운영서버 (192.168.123.100)
→ 포트포워딩 (178.104.200.7)
외부 사용자:
인터넷 → 178.104.200.7 → nginx 포트포워딩 → 192.168.123.100
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
배포 및 실전 운영 체크리스트:
Phase 0 (완료): 코드 구현 & UI/UX 완성
- P3~P6 YAML 명세 (4개 파일)
- GAS 함수 7개 (gas_data_feed.gs)
- MudBlazor UI (Dashboard, Layout, Navigation)
- Release 빌드 완료 (24MB)
Phase 1 (지금): 배포 실행
- 웹 서버 배포 (deploy.sh 실행)
- GAS 프로젝트 생성 및 함수 배포
- live_outcome_ledger 스프레드시트 초기화
- 데이터베이스 연결 확인
Phase 2 (6주): 실전 운영
Week 1-2: 6-8개 신호 수집
Week 3-4: T+20 데이터 수집 + 8-10개 추가
Week 5-6: 데이터 수렴 + 8-10개 추가
Week 7: 최종 신호 + CALIBRATED 전환
최종 목표:
- 신호 30개 수집 (SCALP 10 + SWING 8 + MOMENTUM 7 + POSITION 5)
- 승률 >= 60% (30개 중 18개 WIN)
- honest_proof_score: 56.57 → 95.0 달성
- 예상 완료: 2026-08-10
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
배포 및 실전 운영 준비:
1. 배포 스크립트 (deploy.sh)
- SSH 기반 자동 배포
- 원격 백업 생성
- nginx 자동 재시작
- 헬스 체크
2. Live Outcome Ledger (live_outcome_ledger.gs)
- addSignal_(): 신호 기록
- updatePriceT5_(): T+5 가격 입력
- updatePriceT20_(): T+20 가격 + outcome 자동 계산
- calculateStats_(): 통계 계산 (win_rate, avg_margin)
- checkCalibrationReady_(): CALIBRATED 전환 조건 확인
- calibrateIfReady_(): 자동 전환 (30개 신호 + 60% 승률)
3. 일일 추적 가이드 (DAILY_SIGNAL_TRACKING.md)
- 신호 발생 시 → T+5 → T+20 프로세스
- 주간 리뷰 체크리스트
- 마일스톤 일정 (6주)
- CALIBRATED 전환 조건
- honest_proof_score 개선 경로
배포 준비:
- publish 폴더: 24MB (172개 파일)
- appsettings.json: PostgreSQL 연결 설정됨
- MudBlazor UI: 반응형 대시보드
- GAS 함수: 7개 (P3~P6)
실전 운영:
- 신호 수집 기간: 2026-06-25 ~ 2026-08-10 (6주)
- 목표: 30개 신호 + win_rate >= 60%
- 최종 목표: honest_proof_score 95.0 달성
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
MudBlazor 6.10.0 적용으로 완성도 높은 모던 UI 구현:
**의존성 추가**:
- QuantEngine.Web.csproj: MudBlazor 6.10.0 패키지 추가
**핵심 변경사항**:
- App.razor: MudThemeProvider, MudDialogProvider, MudSnackbarProvider 통합
- MudBlazor CDN 스타일 및 JavaScript 로드
- Google Fonts(Roboto) 적용
- _Imports.razor: MudBlazor namespace 추가 (전역 사용 가능)
- MainLayout.razor: 완전 리뉴얼
- MudLayout + MudAppBar 상단 네비게이션
- MudDrawer 사이드바 (토글 가능)
- MudContainer로 반응형 컨텐츠 영역
- NavMenu.razor: MudNavMenu + MudNavLink로 현대화
- Material Icons 적용
- Dashboard, Portfolio, Analytics, Reports, Settings 메뉴 구조
- Dashboard.razor: 완전 리뉴얼 (MudBlazor 고도화)
- MudCard 기반 상태 요약 (Locks, Approvals, Config Items, System Status)
- MudGrid 반응형 레이아웃 (xs/sm/md 브레이크포인트)
- MudDataGrid 테이블 (커스텀 필터/정렬 준비)
- MudButton/MudIconButton 액션 버튼
- MudChip으로 상태 표시
- MudSnackbar 알림
- MudDialogService 모달 (Add/Edit/Delete)
**개선점**:
- 데스크톱 우선 → 모바일 반응형 설계
- 기본 HTML/CSS → Material Design System
- 일관된 색상/타이포그래피/아이콘 체계
- 접근성(a11y) 및 사용성 향상
- Dark Mode 지원 가능 (MudTheme 확장)
배포 준비: MSBUILD : error MSB1003: 프로젝트 또는 솔루션 파일을 지정하세요. 현재 작업 디렉터리에 프로젝트 또는 솔루션 파일이 없습니다. 후 nginx/IIS에 배포
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>