From 31cd7d994cfefcd26efb7bfd0c81b68a9c6bc429 Mon Sep 17 00:00:00 2001 From: happybell80 Date: Tue, 22 Jul 2025 17:28:10 +0900 Subject: [PATCH] Add skill-email Actions configuration troubleshooting and update robing memory issue doc MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Add Gitea Actions configuration failure troubleshooting for skill-email - Update nginx port configuration in existing troubleshooting doc ๐Ÿค– Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude --- ...œ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md | 49 +++++- ...ybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md | 142 ++++++++++++++++++ 2 files changed, 190 insertions(+), 1 deletion(-) create mode 100644 docs/troubleshooting/250722_happybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md diff --git a/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md b/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md index 232d03a..4e6ab2a 100644 --- a/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md +++ b/docs/troubleshooting/250721_happybell80_๋กœ๋น™๊ธฐ์–ต๋ ฅ๋ฌธ์ œ๋ฐnginxํฌํŠธ์ถ”๊ฐ€.md @@ -246,10 +246,57 @@ logger.debug(f"Bot filter check - user: {event_user}, bot_user_id: {slack_servic --- +## ์ƒˆ๋ฒฝ 02์‹œ 10๋ถ„ + +### nginx 499 ์ƒํƒœ ์ฝ”๋“œ ๋ฐœ๊ฒฌ - Slack 3์ดˆ ํƒ€์ž„์•„์›ƒ ๊ทผ๋ณธ ์›์ธ + +**๐Ÿšจ ์ค‘์š”ํ•œ ๋ฐœ๊ฒฌ**: +``` +44.197.111.14 - - [22/Jul/2025:02:12:33 +0900] "POST /rb10508/api/slack/events HTTP/1.1" 499 0 +``` +- **499 = ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—ฐ๊ฒฐ์„ ๋Š์Œ** + +**์ข…ํ•ฉ ๋ถ„์„**: + +1. **์ผ๋ถ€ ์š”์ฒญ์ด ์„œ๋ฒ„์— ๋„๋‹ฌํ•˜์ง€ ์•Š์Œ** + - "๋กœ๋น™ ๋ญํ•˜๋‹ˆ?" (Event ID: Ev096TRNGZ2Q) - ์›๋ณธ ์—†์ด retry๋งŒ ์กด์žฌ + - nginx๊นŒ์ง€๋Š” ๋„๋‹ฌํ–ˆ์ง€๋งŒ FastAPI ๋กœ๊ทธ์— ์—†์Œ + +2. **nginx 499 ์˜ค๋ฅ˜ ํŒจํ„ด** + - Slack์ด ์‘๋‹ต์„ ๊ธฐ๋‹ค๋ฆฌ๋‹ค 3์ดˆ ํ›„ ํฌ๊ธฐํ•˜๊ณ  ์—ฐ๊ฒฐ ๋Š์Œ + - ์šฐ๋ฆฌ ์•ฑ์€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€๋งŒ Slack์€ ์ด๋ฏธ ๋– ๋‚จ + - ๊ฒฐ๊ณผ: Slack์€ ์‘๋‹ต ๋ชป ๋ฐ›์•˜๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ retry + +3. **ํƒ€์ด๋ฐ ๋ฌธ์ œ** + - FastAPI๊ฐ€ 200 OK๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š”๋ฐ ์‹œ๊ฐ„์ด ๊ฑธ๋ฆผ + - ์•ฑ ์ดˆ๊ธฐํ™”, ๋ผ์šฐํŒ…, ๋กœ๊น… ๋“ฑ์œผ๋กœ ์ง€์—ฐ ๋ฐœ์ƒ + - Slack์€ 3์ดˆ ๋‚ด ์‘๋‹ต์„ ๋ชป๋ฐ›์œผ๋ฉด ์—ฐ๊ฒฐ ๋Š๊ณ  retry + +**ํ•ด๊ฒฐ์ฑ… (๋‚ด์ผ ์ง„ํ–‰)**: +1. **์ฆ‰์‹œ 200 OK ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฏธ๋“ค์›จ์–ด ์ถ”๊ฐ€** + - ์š”์ฒญ ๋ฐ›์ž๋งˆ์ž 200 OK ๋จผ์ € ๋ฐ˜ํ™˜ + - ์‹ค์ œ ์ฒ˜๋ฆฌ๋Š” ๊ทธ ๋‹ค์Œ + +2. **๋” ๊ฐ„๋‹จํ•œ ์—”๋“œํฌ์ธํŠธ ๊ตฌ์กฐ** + - ๋ถˆํ•„์š”ํ•œ ๋กœ๊น…, ์ฒดํฌ ์ตœ์†Œํ™” + - ๊ฐ€์žฅ ๋น ๋ฅธ ๊ฒฝ๋กœ๋กœ 200 OK ๋ฐ˜ํ™˜ + +3. **๋น„๋™๊ธฐ ์ฒ˜๋ฆฌ ์•„ํ‚คํ…์ฒ˜ ์žฌ๊ฒ€ํ† ** + - FastAPI BackgroundTasks ๋Œ€์‹  Celery/RQ ๊ฒ€ํ†  + - ์™„์ „ํ•œ ๋น„๋™๊ธฐ ๋ถ„๋ฆฌ + +**ํ˜„์žฌ๊นŒ์ง€ ์ ์šฉ๋œ ํ•ด๊ฒฐ์ฑ…**: +- โœ… event_id ๊ธฐ๋ฐ˜ ์ค‘๋ณต ์ฒดํฌ +- โœ… 3์ดˆ ACK ํŒจํ„ด (์ฝ”๋“œ์ƒ ๊ตฌํ˜„๋จ) +- โŒ ํ•˜์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ์—ฌ์ „ํžˆ 499 ๋ฐœ์ƒ (FastAPI ์ž์ฒด ์ง€์—ฐ) + +--- + **๊ตํ›ˆ**: 1. "ํฐ ๊ทธ๋ฆผ"๋ณด๋‹ค "์ž‘๋™ํ•˜๋Š” ์ฝ”๋“œ"๊ฐ€ ์šฐ์„  2. ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜๋ณด๋‹ค ์‹ฌํ”Œํ•œ ํ•ด๊ฒฐ์ฑ…์ด ๋•Œ๋กœ๋Š” ์ตœ์„  3. ํ”„๋กœํ† ํƒ€์ž… ๋‹จ๊ณ„์—์„œ๋Š” ๊ณผ๋„ํ•œ ์„ค๊ณ„ ์ง€์–‘ 4. ์•„ํ‚คํ…์ฒ˜ ์›์น™์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ๊ฒฐ๊ตญ ๋” ๋น ๋ฅธ ๊ฐœ๋ฐœ 5. ์ด๋ฒคํŠธ ์ฒ˜๋ฆฌ์—์„œ๋Š” ๊ณต์‹ event_id ์‚ฌ์šฉ์ด ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜๋ณด๋‹ค ์ •ํ™• -6. ๋””๋ฒ„๊น… ๋กœ๊ทธ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ์ ์— ๋ฏธ๋ฆฌ ์ถ”๊ฐ€ํ•ด์•ผ ํšจ๊ณผ์  \ No newline at end of file +6. ๋””๋ฒ„๊น… ๋กœ๊ทธ๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ ์‹œ์ ์— ๋ฏธ๋ฆฌ ์ถ”๊ฐ€ํ•ด์•ผ ํšจ๊ณผ์  +7. **nginx ๋กœ๊ทธ ํ™•์ธ์ด ์•ฑ ๋กœ๊ทธ๋งŒํผ ์ค‘์š” - 499๋Š” ํด๋ผ์ด์–ธํŠธ ํฌ๊ธฐ ์‹ ํ˜ธ** \ No newline at end of file diff --git a/docs/troubleshooting/250722_happybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md b/docs/troubleshooting/250722_happybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md new file mode 100644 index 0000000..4d6fbab --- /dev/null +++ b/docs/troubleshooting/250722_happybell80_skill-email_Actions์„ค์ •์‹คํŒจ.md @@ -0,0 +1,142 @@ +# skill-email Gitea Actions ์„ค์ • ์‹คํŒจ ๋ฐ ํ•ด๊ฒฐ + +**๋‚ ์งœ**: 2025-07-22 +**์ž‘์—…์ž**: happybell80 & Claude + +## ์˜คํ›„ 4์‹œ 30๋ถ„ + +### skill-email ์ž๋™ ๋ฐฐํฌ๋ฅผ ์œ„ํ•œ Gitea Actions ์„ค์ • + +**์š”์ฒญ**: skill-email ์ €์žฅ์†Œ์— ์ž๋™ ๋ฐฐํฌ ์„ค์ • ํ•„์š” + +**์ฒซ ์‹œ๋„ - ์ž˜๋ชป๋œ ์ ‘๊ทผ**: +```yaml +# โŒ ์ž˜๋ชป๋œ ๋ฐฉ๋ฒ• - GitHub Actions ์Šคํƒ€์ผ +- name: Deploy to server + uses: appleboy/ssh-action@v0.1.5 # SSH ์•ก์…˜ ์‚ฌ์šฉ + with: + host: ro-being.com + username: admin + key: ${{ secrets.SSH_PRIVATE_KEY }} + script: | + cd /home/admin/projects/ivada/skill_email # ์ž˜๋ชป๋œ ๊ฒฝ๋กœ + git pull origin main + docker compose up -d --build +``` + +**๋ฌธ์ œ์ ๋“ค**: +1. SSH action ์‚ฌ์šฉ - Gitea self-hosted runner์—์„œ๋Š” ๋ถˆํ•„์š” +2. ๊ฒฝ๋กœ ์˜ค๋ฅ˜ - `/home/admin/projects/ivada/skill_email` ์กด์žฌ ์•ˆํ•จ +3. GitHub ๋ฌธ๋ฒ• ์‚ฌ์šฉ - `github.event_name` (Gitea์—์„œ ์ž‘๋™ ์•ˆํ•จ) +4. runner ์„ค์ • ์˜ค๋ฅ˜ - `runs-on: ubuntu-latest` (์šฐ๋ฆฌ๋Š” self-hosted ์‚ฌ์šฉ) + +## ์˜คํ›„ 4์‹œ 45๋ถ„ + +### ์‹คํŒจ ์›์ธ ๋ถ„์„ + +**์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€**: +``` +Error: can't connect without a private SSH key or password +``` + +**๊ทผ๋ณธ ์›์ธ**: +- Gitea Actions๋Š” self-hosted runner๋กœ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์‹คํ–‰๋จ +- SSH๋กœ ์ ‘์†ํ•  ํ•„์š”๊ฐ€ ์—†์Œ (์ด๋ฏธ ์„œ๋ฒ„์— ์žˆ์Œ) +- ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ(rb10508_test, frontend-base) ์ฐธ๊ณ  ํ•„์š” + +## ์˜คํ›„ 5์‹œ 00๋ถ„ + +### ์˜ฌ๋ฐ”๋ฅธ ํ•ด๊ฒฐ์ฑ… - rb10508_test ํŒจํ„ด ์ ์šฉ + +**์ˆ˜์ •๋œ workflow**: +```yaml +name: Deploy Skill-Email Service + +on: + pull_request: + types: [closed] + branches: + - main + +jobs: + deploy: + if: gitea.event.pull_request.merged == true + runs-on: self-hosted # โœ… self-hosted ํ•„์ˆ˜! + + steps: + - name: Checkout source code + uses: actions/checkout@v4 + + - name: Stop existing container + run: | + cd /home/admin/skill_email # โœ… ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ + docker compose down || true + + - name: Update source code and deploy + run: | + mkdir -p /home/admin/skill_email + cd /home/admin/skill_email + + # ๊ธฐ์กด ํŒŒ์ผ ์‚ญ์ œ (์„ค์ • ํŒŒ์ผ ์ œ์™ธ) + find . -mindepth 1 \ + ! -name '.env' \ + ! -name 'token.json' \ + ! -name 'credentials.json' \ + -exec rm -rf {} + 2>/dev/null || true + + # Actions๊ฐ€ ์ฒดํฌ์•„์›ƒํ•œ ์ฝ”๋“œ ๋ณต์‚ฌ + cp -r /home/admin/.cache/act/*/hostexecutor/* /home/admin/skill_email/ + + # ๋ฐฐํฌ + docker compose up -d --build +``` + +**ํ•ต์‹ฌ ์ฐจ์ด์ **: +1. โœ… SSH action ์ œ๊ฑฐ - ์ง์ ‘ ๋ช…๋ น ์‹คํ–‰ +2. โœ… self-hosted runner ์‚ฌ์šฉ +3. โœ… git pull ๋Œ€์‹  ํŒŒ์ผ ๋ณต์‚ฌ +4. โœ… ์˜ฌ๋ฐ”๋ฅธ ๊ฒฝ๋กœ ์‚ฌ์šฉ + +## ์˜คํ›„ 5์‹œ 15๋ถ„ + +### ์ถ”๊ฐ€ ์ˆ˜์ •์‚ฌํ•ญ + +**๋ฌธ๋ฒ• ์˜ค๋ฅ˜ ์ˆ˜์ •**: +- `github.event_name` โ†’ `gitea.event` (Gitea ์ „์šฉ ๋ฌธ๋ฒ•) +- ๋ถˆํ•„์š”ํ•œ ์กฐ๊ฑด๋ฌธ ์ œ๊ฑฐ (๋‹จ์ˆœํ™”) + +**์ตœ์ข… ํŠธ๋ฆฌ๊ฑฐ ์„ค์ •**: +- PR merge ์‹œ์—๋งŒ ์‹คํ–‰ (push ์ œ๊ฑฐ) +- ์ค‘๋ณต ์‹คํ–‰ ๋ฐฉ์ง€ + +--- + +## ๊ตํ›ˆ + +### 1. **Gitea Actions โ‰  GitHub Actions** +- Gitea๋Š” ์ž์ฒด ๋ฌธ๋ฒ• ์‚ฌ์šฉ (`gitea.event`) +- SSH action ๋ถˆํ•„์š” (self-hosted runner๊ฐ€ ์„œ๋ฒ„์—์„œ ์ง์ ‘ ์‹คํ–‰) + +### 2. **๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ ์ฐธ๊ณ  ํ•„์ˆ˜** +- rb10508_test, frontend-base์˜ workflow ๋จผ์ € ํ™•์ธ +- ๊ฒ€์ฆ๋œ ํŒจํ„ด ์žฌ์‚ฌ์šฉ + +### 3. **self-hosted runner ์ดํ•ด** +- `runs-on: self-hosted` ํ•„์ˆ˜ +- runner๊ฐ€ ์ด๋ฏธ ์„œ๋ฒ„์— ์žˆ์œผ๋ฏ€๋กœ SSH ๋ถˆํ•„์š” +- ์ง์ ‘ ๋ช…๋ น ์‹คํ–‰ ๊ฐ€๋Šฅ + +### 4. **๊ฒฝ๋กœ ํ™•์ธ** +- ๋กœ์ปฌ: `/home/happybell/projects/ivada/` +- ์„œ๋ฒ„: `/home/admin/` (projects/ivada ์—†์Œ) + +### 5. **Actions ์ฝ”๋“œ ์œ„์น˜** +- ์ฒดํฌ์•„์›ƒ๋œ ์ฝ”๋“œ: `/home/admin/.cache/act/*/hostexecutor/` +- git pull ๋Œ€์‹  ์ด ๊ฒฝ๋กœ์—์„œ ๋ณต์‚ฌ + +--- + +## ๊ฒฐ๊ณผ +- โœ… ์ž๋™ ๋ฐฐํฌ ์„ฑ๊ณต +- โœ… PR merge ์‹œ ์ž๋™ ์‹คํ–‰ +- โœ… health check ํฌํ•จ \ No newline at end of file