diff --git a/DEPLOYMENT_SSH_GUIDE.md b/DEPLOYMENT_SSH_GUIDE.md index 3064b9c..c992c1b 100644 --- a/DEPLOYMENT_SSH_GUIDE.md +++ b/DEPLOYMENT_SSH_GUIDE.md @@ -1,7 +1,7 @@ -# πŸ” SSH 배포 κ°€μ΄λ“œ +# πŸ” SSH 배포 κ°€μ΄λ“œ (v9) -**λͺ©ν‘œ**: SSH둜 원격 μ„œλ²„μ— 직접 μ ‘μ†ν•˜μ—¬ ν™˜κ²½μ„ νŒŒμ•…ν•œ ν›„ 배포 -**λŒ€μƒ**: 178.104.200.7 (곡인 IP) / 192.168.123.100 (λ‚΄λΆ€ IP) +**λͺ©ν‘œ**: SSH둜 원격 μ„œλ²„μ— 직접 μ ‘μ†ν•˜μ—¬ 배포 +**ν™˜κ²½**: hz-prod-01 (곡인 IP 178.104.200.7 / λ‚΄λΆ€ IP 172.17.0.1) --- @@ -17,61 +17,84 @@ ssh-keygen -t ed25519 -f ~/.ssh/id_ed25519 -N "" #### 1.2 곡개 ν‚€λ₯Ό 원격 μ„œλ²„μ— 등둝 ```bash ssh-copy-id -i ~/.ssh/id_ed25519.pub kjh2064@178.104.200.7 -# λ˜λŠ” λ‚΄λΆ€ IP -ssh-copy-id -i ~/.ssh/id_ed25519.pub kjh2064@192.168.123.100 ``` #### 1.3 SSH μ—°κ²° ν…ŒμŠ€νŠΈ ```bash -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 "echo 'βœ… μ—°κ²° 성곡'" +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 "echo 'βœ… μ—°κ²° 성곡'" ``` --- ## πŸ” Step 1: ν™˜κ²½ νŒŒμ•… -### μ‹œμŠ€ν…œ 정보 확인 +### 원격 μ„œλ²„ 정보 확인 ```bash -# SSH 접속 -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 - -# 원격 μ„œλ²„μ—μ„œ μ‹€ν–‰: -# ───────────────────────────────────────────── +ssh kjh2064@178.104.200.7 << 'EOF' # 1. μ‹œμŠ€ν…œ 정보 +echo "=== μ‹œμŠ€ν…œ 정보 ===" +hostname uname -a lsb_release -a -# 2. λ””μŠ€ν¬ μƒνƒœ +# 2. 배포 경둜 +echo -e "\n=== 배포 경둜 ===" +ls -la /home/kjh2064/quantengine_active/ || echo "아직 μ—†μŒ (첫 배포)" +ls -la /home/kjh2064/quantengine_backup/ + +# 3. μ„œλΉ„μŠ€ μƒνƒœ +echo -e "\n=== quantengine μ„œλΉ„μŠ€ ===" +sudo systemctl status quantengine --no-pager + +# 4. Nginx μ„€μ • +echo -e "\n=== Nginx /quant μ„€μ • ===" +cat /etc/nginx/sites-available/gitea-ip.conf | grep -A 10 "location /quant" + +# 5. 포트 μƒνƒœ +echo -e "\n=== 포트 μƒνƒœ ===" +sudo netstat -tuln | grep -E ":80|:443|:5000" + +# 6. λ””μŠ€ν¬ μƒνƒœ +echo -e "\n=== λ””μŠ€ν¬ ===" df -h -# 3. μ›Ή μ„œλ²„ μƒνƒœ -sudo systemctl status nginx - -# 4. μ›Ή μ„œλ²„ 경둜 -ls -la /var/www/quant/ -ls -la /var/www/quant/publish/ - -# 5. Nginx μ„€μ • 확인 -sudo cat /etc/nginx/sites-available/default | grep -A 10 "location" - -# 6. 포트 μƒνƒœ -sudo netstat -tuln | grep :80 - -# 7. μ‚¬μš©μž κΆŒν•œ 확인 -id -sudo -l +EOF ``` ### μ˜ˆμƒ ν™˜κ²½ ``` -βœ“ Linux (Ubuntu 20.04 λ˜λŠ” κ·Έ 이상) -βœ“ nginx (1.18 이상) -βœ“ /var/www/quant/ 디렉토리 쑴재 λ˜λŠ” 생성 κ°€λŠ₯ -βœ“ www-data λ˜λŠ” μœ μ‚¬ μ›Ή μ„œλ²„ μ‚¬μš©μž -βœ“ sudo κΆŒν•œ (webmaster κ·Έλ£Ή) +βœ“ Linux (Ubuntu 20.04+) +βœ“ nginx 1.28.3 (reverse proxy) +βœ“ /home/kjh2064/quantengine_active/ 배포 경둜 +βœ“ quantengine systemd μ„œλΉ„μŠ€ +βœ“ 포트 5000μ—μ„œ .NET μ•± μ‹€ν–‰ +βœ“ sudo κΆŒν•œ (quantengine μ„œλΉ„μŠ€ μ œμ–΄) +``` + +--- + +## πŸ—οΈ 배포 μ•„ν‚€ν…μ²˜ + +``` +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ μ‚¬μš©μž (μ™ΈλΆ€ 인터넷) β”‚ +β”‚ http://178.104.200.7/quant/ β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ 곡인 IP (포트 80) +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ Nginx (reverse proxy) β”‚ +β”‚ /etc/nginx/sites-available/gitea-ip.conf β”‚ +β”‚ location /quant/ β†’ proxy_pass http://127.0.0.1:5000/ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ + β”‚ localhost:5000 +β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β–Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β” +β”‚ quantengine (systemd μ„œλΉ„μŠ€) β”‚ +β”‚ /home/kjh2064/quantengine_active/ β”‚ +β”‚ QuantEngine.Web.dll (μ‹€ν–‰ 쀑) β”‚ +β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜ ``` --- @@ -79,7 +102,7 @@ sudo -l ## πŸ“¦ Step 2: Release λΉŒλ“œ ```bash -# λ‘œμ»¬μ—μ„œ μ‹€ν–‰ +# 둜컬 개발 λ¨Έμ‹ μ—μ„œ μ‹€ν–‰ cd /c/Temp/data_feed # Release λΉŒλ“œ @@ -88,20 +111,21 @@ dotnet publish -c Release \ # κ²°κ³Ό 확인 ls -lh src/dotnet/QuantEngine.Web/publish/ +du -sh src/dotnet/QuantEngine.Web/publish/ ``` --- -## πŸš€ Step 3: 배포 슀크립트 μ‹€ν–‰ +## πŸš€ Step 3: 배포 방법 ### 방법 1: μžλ™ 배포 슀크립트 (ꢌμž₯) ```bash # μŠ€ν¬λ¦½νŠΈμ— μ‹€ν–‰ κΆŒν•œ λΆ€μ—¬ -chmod +x deploy-manual.sh +chmod +x deploy-production.sh # 배포 μ‹€ν–‰ -./deploy-manual.sh 192.168.123.100 +./deploy-production.sh # λ˜λŠ” ./deploy-manual.sh 178.104.200.7 ``` @@ -109,115 +133,180 @@ chmod +x deploy-manual.sh **μŠ€ν¬λ¦½νŠΈκ°€ μžλ™μœΌλ‘œ:** - βœ“ SSH μ—°κ²° 확인 - βœ“ 원격 ν™˜κ²½ νŒŒμ•… +- βœ“ μ„œλΉ„μŠ€ 쀑지 - βœ“ λ°±μ—… 생성 - βœ“ 파일 전솑 (rsync) -- βœ“ κΆŒν•œ μ„€μ • -- βœ“ nginx μž¬μ‹œμž‘ +- βœ“ 파일 검증 +- βœ“ μ„œλΉ„μŠ€ μ‹œμž‘ - βœ“ ν—¬μŠ€ 체크 ### 방법 2: μˆ˜λ™ 배포 (단계별) +#### Step 2-1: SSH 접속 + ```bash -# 1. SSH 접속 -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 +``` -# 원격 μ„œλ²„μ—μ„œ: -# ───────────────────────────────────────────── +#### Step 2-2: μ„œλΉ„μŠ€ 쀑지 및 λ°±μ—… -# 2. λ°±μ—… 생성 -sudo mkdir -p /var/www/quant_backup -sudo cp -r /var/www/quant/publish \ - /var/www/quant_backup/quant_$(date +%Y%m%d_%H%M%S) -echo "βœ“ λ°±μ—… 생성 μ™„λ£Œ" +```bash +# 원격 μ„œλ²„μ—μ„œ μ‹€ν–‰: +set -e -# 3. 배포 디렉토리 μ€€λΉ„ -sudo mkdir -p /var/www/quant/publish -sudo chmod 777 /var/www/quant/publish +SERVICE_NAME="quantengine" +DEPLOY_PATH="/home/kjh2064/quantengine_active" +BACKUP_PATH="/home/kjh2064/quantengine_backup" +BACKUP_NAME="quantengine_$(date +%Y%m%d_%H%M%S)" -# 4. κΆŒν•œ μ„€μ • -sudo chown -R www-data:www-data /var/www/quant/publish -sudo chmod -R 755 /var/www/quant/publish +# μ„œλΉ„μŠ€ 쀑지 +sudo systemctl stop $SERVICE_NAME +sleep 2 +echo "βœ“ μ„œλΉ„μŠ€ 쀑지" -# 5. SSH μ’…λ£Œ +# λ°±μ—… 생성 +mkdir -p $BACKUP_PATH +if [ -d $DEPLOY_PATH ]; then + cp -r $DEPLOY_PATH "$BACKUP_PATH/$BACKUP_NAME" + echo "βœ“ λ°±μ—…: $BACKUP_PATH/$BACKUP_NAME" +else + mkdir -p $DEPLOY_PATH + echo "⚠️ 첫 배포" +fi +``` + +#### Step 2-3: SSH μ’…λ£Œ + +```bash exit ``` +#### Step 2-4: 파일 전솑 (λ‘œμ»¬μ—μ„œ) + ```bash -# λ‘œμ»¬μ—μ„œ: 파일 전솑 rsync -avz --delete \ -e "ssh -i ~/.ssh/id_ed25519" \ src/dotnet/QuantEngine.Web/publish/ \ - kjh2064@192.168.123.100:/var/www/quant/publish/ + kjh2064@178.104.200.7:/home/kjh2064/quantengine_active/ ``` +#### Step 2-5: μ„œλΉ„μŠ€ μ‹œμž‘ + ```bash -# λ‹€μ‹œ SSH 접속 -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 +ssh -i ~/.ssh/id_ed25519 kjh2064@178.104.200.7 << 'EOF' -# 원격 μ„œλ²„μ—μ„œ: -# ───────────────────────────────────────────── +SERVICE_NAME="quantengine" +DEPLOY_PATH="/home/kjh2064/quantengine_active" -# 6. nginx μž¬μ‹œμž‘ -sudo systemctl restart nginx +# 파일 검증 +if [ -f $DEPLOY_PATH/QuantEngine.Web.dll ]; then + echo "βœ“ 파일 확인됨" +else + echo "❌ 파일 μ—†μŒ" + exit 1 +fi -# 7. μƒνƒœ 확인 -sudo systemctl status nginx +# μ„œλΉ„μŠ€ μ‹œμž‘ +sudo systemctl start $SERVICE_NAME +sleep 3 -# μ’…λ£Œ -exit +# μƒνƒœ 확인 +if sudo systemctl is-active --quiet $SERVICE_NAME; then + echo "βœ“ μ„œλΉ„μŠ€ μ‹œμž‘λ¨" +else + echo "❌ μ„œλΉ„μŠ€ μ‹œμž‘ μ‹€νŒ¨" + exit 1 +fi + +EOF ``` --- ## βœ… Step 4: 배포 검증 -```bash -# 1. HTTP μƒνƒœ 확인 -curl -I http://178.104.200.7/quant/ -# λ˜λŠ” -curl -I http://192.168.123.100/quant/ +### HTTP μƒνƒœ 확인 +```bash +# 곡인 IP둜 μ ‘κ·Ό (μ™ΈλΆ€ μ‚¬μš©μž κΈ°μ€€) +curl -I http://178.104.200.7/quant/ # κΈ°λŒ€: HTTP/1.1 200 OK -# 2. MudBlazor λ‘œλ“œ 확인 +# localhost:5000 직접 확인 (μ„œλ²„μ—μ„œ) +ssh kjh2064@178.104.200.7 'curl -I http://127.0.0.1:5000/' +# κΈ°λŒ€: HTTP/1.1 200 OK +``` + +### MudBlazor λ¦¬μ†ŒμŠ€ 확인 + +```bash curl -s http://178.104.200.7/quant/ | grep -c "MudBlazor" # κΈ°λŒ€: > 0 +``` -# 3. νŽ˜μ΄μ§€ 제λͺ© 확인 +### νŽ˜μ΄μ§€ 제λͺ© 확인 + +```bash curl -s http://178.104.200.7/quant/ | grep -o ".*" # κΈ°λŒ€: Quant Engine - Dashboard +``` -# 4. nginx 둜그 확인 -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 \ - 'sudo tail -20 /var/log/nginx/error.log' +### 둜그 확인 -# 5. λΈŒλΌμš°μ € ν…ŒμŠ€νŠΈ -# http://178.104.200.7/quant/ 접속 +```bash +# μ„œλΉ„μŠ€ 둜그 +ssh kjh2064@178.104.200.7 'sudo journalctl -u quantengine -n 50' + +# Nginx μ—λŸ¬ 둜그 +ssh kjh2064@178.104.200.7 'sudo tail -f /var/log/nginx/error.log' + +# μ‹€μ‹œκ°„ λͺ¨λ‹ˆν„°λ§ +ssh kjh2064@178.104.200.7 'sudo journalctl -u quantengine -f' +``` + +### λΈŒλΌμš°μ € ν…ŒμŠ€νŠΈ + +``` +http://178.104.200.7/quant/ ``` --- ## πŸ”„ λ‘€λ°± (배포 μ‹€νŒ¨ μ‹œ) +### μžλ™ λ‘€λ°± 슀크립트 + ```bash -ssh -i ~/.ssh/id_ed25519 kjh2064@192.168.123.100 << 'EOF' -# μ΅œμ‹  λ°±μ—… 확인 -ls -lt /var/www/quant_backup/ +ssh kjh2064@178.104.200.7 << 'EOF' +set -e -# μ΅œμ‹  λ°±μ—…μœΌλ‘œ 볡원 -LATEST=$(ls -t /var/www/quant_backup | head -1) -echo "볡원 쀑: $LATEST" +SERVICE_NAME="quantengine" +DEPLOY_PATH="/home/kjh2064/quantengine_active" +BACKUP_PATH="/home/kjh2064/quantengine_backup" -sudo cp -r /var/www/quant_backup/$LATEST/* /var/www/quant/publish/ +echo "πŸ”„ μ΅œμ‹  λ°±μ—… μ°ΎλŠ” 쀑..." +LATEST=$(ls -t $BACKUP_PATH | head -1) +echo "λ‘€λ°± λŒ€μƒ: $LATEST" -# κΆŒν•œ μž¬μ„€μ • -sudo chown -R www-data:www-data /var/www/quant/publish -sudo chmod -R 755 /var/www/quant/publish +# μ„œλΉ„μŠ€ 쀑지 +sudo systemctl stop $SERVICE_NAME +sleep 2 -# nginx μž¬μ‹œμž‘ -sudo systemctl restart nginx +# λ°±μ—… 볡원 +cp -r "$BACKUP_PATH/$LATEST"/* "$DEPLOY_PATH/" +echo "βœ“ λ°±μ—… 볡원 μ™„λ£Œ" -echo "βœ… λ‘€λ°± μ™„λ£Œ" +# μ„œλΉ„μŠ€ μ‹œμž‘ +sudo systemctl start $SERVICE_NAME +sleep 3 + +# 확인 +if sudo systemctl is-active --quiet $SERVICE_NAME; then + echo "βœ… λ‘€λ°± μ™„λ£Œ" +else + echo "❌ λ‘€λ°± μ‹€νŒ¨" + exit 1 +fi EOF ``` @@ -229,26 +318,28 @@ EOF ``` [ ] SSH ν‚€ μ„€μ • μ™„λ£Œ (~/.ssh/id_ed25519) [ ] SSH μ—°κ²° ν…ŒμŠ€νŠΈ 성곡 -[ ] Release λΉŒλ“œ μ™„λ£Œ (24MB) +[ ] Release λΉŒλ“œ μ™„λ£Œ (24MB+) [ ] 배포 슀크립트 μ€€λΉ„ ``` ### 배포 쀑 ``` [ ] ν™˜κ²½ νŒŒμ•… μ™„λ£Œ -[ ] λ°±μ—… 생성 μ™„λ£Œ -[ ] 파일 전솑 μ™„λ£Œ -[ ] κΆŒν•œ μ„€μ • μ™„λ£Œ -[ ] nginx μž¬μ‹œμž‘ μ™„λ£Œ +[ ] μ„œλΉ„μŠ€ 쀑지 확인 +[ ] λ°±μ—… 생성 확인 +[ ] 파일 전솑 μ™„λ£Œ (rsync) +[ ] 파일 검증 μ™„λ£Œ +[ ] μ„œλΉ„μŠ€ μ‹œμž‘ μ™„λ£Œ ``` ### 배포 ν›„ ``` [ ] HTTP 200 OK 확인 +[ ] localhost:5000 응닡 확인 [ ] MudBlazor λ¦¬μ†ŒμŠ€ λ‘œλ“œλ¨ -[ ] νŽ˜μ΄μ§€ 제λͺ© 확인 -[ ] nginx 둜그 μ—λŸ¬ μ—†μŒ +[ ] Nginx μ—λŸ¬ 둜그 확인 [ ] λΈŒλΌμš°μ € 접속 ν…ŒμŠ€νŠΈ +[ ] νŽ˜μ΄μ§€ λ‘œλ“œ μ‹œκ°„ < 2s ``` --- @@ -257,46 +348,47 @@ EOF ### SSH μ—°κ²° νƒ€μž„μ•„μ›ƒ ```bash -# 원인: IP μ£Όμ†Œ 였λ₯˜ λ˜λŠ” λ°©ν™”λ²½ +# 확인: +1. IP μ£Όμ†Œ: 178.104.200.7 λ˜λŠ” 172.17.0.1? +2. SSH 포트: 22 (κΈ°λ³Έκ°’) +3. λ°©ν™”λ²½ κ·œμΉ™ +4. 곡개 ν‚€ 등둝 확인 # ν•΄κ²°: -1. IP 확인: 178.104.200.7 λ˜λŠ” 192.168.123.100? -2. SSH 포트 확인: 22 (κΈ°λ³Έκ°’) -3. λ°©ν™”λ²½ κ·œμΉ™ 확인 -4. 곡개 ν‚€ 등둝 μž¬ν™•μΈ +ssh-copy-id -i ~/.ssh/id_ed25519.pub kjh2064@178.104.200.7 ``` -### κΆŒν•œ 였λ₯˜ (sudo λΆˆκ°€) -```bash -# 원인: sudo κΆŒν•œ μ—†μŒ - -# 확인: -sudo -l - -# ν•΄κ²°: κ΄€λ¦¬μžμ—κ²Œ webmaster κ·Έλ£Ή μΆ”κ°€ μš”μ²­ -``` - -### nginx μž¬μ‹œμž‘ μ‹€νŒ¨ +### μ„œλΉ„μŠ€ μ‹œμž‘ μ‹€νŒ¨ ```bash # 둜그 확인 -sudo systemctl status nginx -sudo journalctl -u nginx -n 20 +ssh kjh2064@178.104.200.7 'sudo journalctl -u quantengine -n 50' -# μ„€μ • ν…ŒμŠ€νŠΈ -sudo nginx -t +# μ„€μ • 확인 +ssh kjh2064@178.104.200.7 'cat /etc/systemd/system/quantengine.service' -# 포트 좩돌 확인 -sudo netstat -tuln | grep :80 +# 파일 검증 +ssh kjh2064@178.104.200.7 'ls -la /home/kjh2064/quantengine_active/' +``` + +### Nginx ν”„λ‘μ‹œ 였λ₯˜ +```bash +# Nginx μ„€μ • ν…ŒμŠ€νŠΈ +ssh kjh2064@178.104.200.7 'sudo nginx -t' + +# μ„€μ • 파일 확인 +ssh kjh2064@178.104.200.7 'cat /etc/nginx/sites-available/gitea-ip.conf' + +# 포트 확인 +ssh kjh2064@178.104.200.7 'sudo netstat -tuln | grep 5000' ``` ### 파일 κΆŒν•œ 문제 ```bash # ν˜„μž¬ κΆŒν•œ 확인 -ls -la /var/www/quant/publish/ +ssh kjh2064@178.104.200.7 'ls -la /home/kjh2064/quantengine_active/' -# κΆŒν•œ μˆ˜μ • -sudo chown -R www-data:www-data /var/www/quant/publish -sudo chmod -R 755 /var/www/quant/publish +# κΆŒν•œ μ„€μ • (ν•„μš”μ‹œ) +ssh kjh2064@178.104.200.7 'chmod +x /home/kjh2064/quantengine_active/QuantEngine.Web.dll' ``` --- @@ -305,18 +397,21 @@ sudo chmod -R 755 /var/www/quant/publish ``` 배포 슀크립트: -β”œβ”€β”€ deploy.sh (μžλ™ 배포, bash) -└── deploy-manual.sh (λŒ€ν™”ν˜• 배포, 이 파일) +β”œβ”€β”€ deploy-production.sh (ꢌμž₯) +└── deploy-manual.sh (λŒ€ν™”ν˜•) -배포 κ°€μ΄λ“œ: -β”œβ”€β”€ DEPLOYMENT_GUIDE.md (전체 κ°€μ΄λ“œ) -β”œβ”€β”€ DEPLOYMENT_STEPS.md (단계별 μ§€μΉ¨) -β”œβ”€β”€ DEPLOYMENT_CHECKLIST.md (운영 체크리슀트) -└── DEPLOYMENT_SSH_GUIDE.md (이 파일) +배포 λ¬Έμ„œ: +β”œβ”€β”€ DEPLOYMENT_GUIDE.md (전체) +β”œβ”€β”€ DEPLOYMENT_STEPS.md (단계별) +β”œβ”€β”€ DEPLOYMENT_SSH_GUIDE.md (이 파일) +└── DEPLOYMENT_CHECKLIST.md (체크리슀트) CI/CD: -β”œβ”€β”€ .gitea/workflows/deploy-prod.yml (μžλ™ν™”) -└── CI_CD_PIPELINE.md (CI/CD λ¬Έμ„œ) +β”œβ”€β”€ .gitea/workflows/deploy-prod.yml +└── CI_CD_PIPELINE.md + +ν™˜κ²½: +└── ENVIRONMENT_DIAGNOSIS.md ``` --- @@ -325,23 +420,31 @@ CI/CD: ### ν•œ λ²ˆμ— 배포 ```bash -chmod +x deploy-manual.sh && ./deploy-manual.sh 192.168.123.100 +chmod +x deploy-production.sh && ./deploy-production.sh ``` -### λ‚΄λΆ€ IP μ‚¬μš© +### λ‚΄λΆ€ IP μ‚¬μš© (선택) ```bash -# Giteaμ—μ„œ 배포할 λ•Œ (μžλ™ CI/CD) -DEPLOY_HOST=192.168.123.100 +./deploy-manual.sh 172.17.0.1 ``` -### μ™ΈλΆ€ 접속 +### 곡인 IP μ‚¬μš© (ꢌμž₯) ```bash -# μ‚¬μš©μžκ°€ 접속할 λ•Œ -http://178.104.200.7/quant/ +./deploy-manual.sh 178.104.200.7 +``` + +### μƒνƒœ 확인 +```bash +ssh kjh2064@178.104.200.7 'sudo systemctl status quantengine' +``` + +### 둜그 λͺ¨λ‹ˆν„°λ§ +```bash +ssh kjh2064@178.104.200.7 'sudo journalctl -u quantengine -f' ``` --- **배포 μ€€λΉ„ μ™„λ£Œ!** πŸš€ -deploy-manual.sh 슀크립트λ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜, μœ„μ˜ μˆ˜λ™ 단계λ₯Ό 따라 λ°°ν¬ν•˜μ„Έμš”. +`deploy-production.sh` λ˜λŠ” `deploy-manual.sh` 슀크립트λ₯Ό μ‹€ν–‰ν•˜κ±°λ‚˜, μœ„μ˜ μˆ˜λ™ 단계λ₯Ό 따라 λ°°ν¬ν•˜μ„Έμš”.