From bd70d027b7707ffcad907b29c40365012822e8e5 Mon Sep 17 00:00:00 2001 From: kaffa Date: Mon, 27 Jul 2026 11:34:31 +0900 Subject: [PATCH] =?UTF-8?q?jarvis(OpenClaw=20=EA=B2=8C=EC=9D=B4=ED=8A=B8?= =?UTF-8?q?=EC=9B=A8=EC=9D=B4)=20=EC=A0=84=EB=A9=B4=20=ED=8F=90=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 미사용 판단(게이트웨이 포트 18789/8787 무응답 확인)으로 컨테이너·APISIX 라우트· DNS·BunnyCDN 호스트네임·Telegram 웹훅과 관련 문서를 전부 정리. Discord/Telegram 봇 토큰은 DarkRouter와 공유 가능성이 있어 삭제 보류. --- dev/claude-code-setup.md | 2 +- history/2026-07-21-jarvis-decommission.md | 39 +++++++++++ infra/compute/infra-hosts.md | 4 +- infra/compute/k3s-to-incus-migration.md | 2 +- infra/network/apisix.md | 10 +-- infra/security/cloudflare.md | 2 - openclaw/_index.md | 1 - openclaw/openclaw-jarvis.md | 79 ----------------------- openclaw/openclaw-manual.md | 1 - openclaw/openclaw-reference.md | 2 +- services/_index.md | 1 - services/bunnycdn-security.md | 2 - services/telegram-bot.md | 11 ---- 13 files changed, 45 insertions(+), 111 deletions(-) create mode 100644 history/2026-07-21-jarvis-decommission.md delete mode 100644 openclaw/openclaw-jarvis.md delete mode 100644 services/telegram-bot.md diff --git a/dev/claude-code-setup.md b/dev/claude-code-setup.md index fd411f9..a0a5e5e 100644 --- a/dev/claude-code-setup.md +++ b/dev/claude-code-setup.md @@ -76,7 +76,7 @@ Gitea 저장소: `gitea.inouter.com/kaffa/obsidian` **Vault 구조**: - `infra/` — 인프라 설정, 네트워크, 서비스 운영 정보 - `products/` — 제품 기획, 요금, 법률/세무 -- `services/` — 외부 서비스 연동 ([[gitea]], [[telegram-bot]], [[twilio]], [[aws-ses]]) +- `services/` — 외부 서비스 연동 ([[gitea]], [[twilio]], [[aws-ses]]) - `openclaw/` — OpenClaw 에이전트 시스템 - `dev/` — 개발 환경, 도구 설정 diff --git a/history/2026-07-21-jarvis-decommission.md b/history/2026-07-21-jarvis-decommission.md new file mode 100644 index 0000000..4417747 --- /dev/null +++ b/history/2026-07-21-jarvis-decommission.md @@ -0,0 +1,39 @@ +--- +date: 2026-07-21 +topic: jarvis (OpenClaw 게이트웨이) 전면 폐기 — 미사용 판단 +areas: + - openclaw/openclaw-jarvis.md (삭제) + - services/telegram-bot.md (삭제) + - infra/network/apisix.md + - infra/compute/infra-hosts.md + - infra/compute/k3s-to-incus-migration.md + - infra/security/cloudflare.md + - services/bunnycdn-security.md +tags: [history, openclaw, jarvis, decommission] +--- + +osaka APISIX 업그레이드 검증 중 jarvis(10.100.2.162, incus-hp2)가 게이트웨이 포트(18789/8787) 전부 무응답인 것을 발견. kappa가 "사용 안 할 것 같다"고 판단해 관련 자료 전체 삭제를 요청, 범위 확인(문서만 vs 문서+실인프라 전체) 후 전면 삭제 진행. + +## 삭제한 것 + +- **incus-hp2 `jarvis` 컨테이너** (10.100.2.162) — 정지 후 삭제 +- **osaka APISIX 라우트**: `jarvis-inouter-com`, `telegram-webhook-inouter-com` +- **Cloudflare DNS**: `jarvis.inouter.com`, `telegram-webhook.inouter.com` CNAME 레코드 (→ iron-kr.b-cdn.net) +- **BunnyCDN iron-kr 풀존**: 위 두 호스트네임 제거 +- **Telegram 웹훅**: `@AnvilForgeBot`의 webhook(`https://telegram-webhook.inouter.com/telegram-webhook`) 해제 (`deleteWebhook`) +- **Obsidian 문서**: `openclaw/openclaw-jarvis.md`, `services/telegram-bot.md` 삭제. `apisix.md`/`infra-hosts.md`/`k3s-to-incus-migration.md`/`cloudflare.md`/`bunnycdn-security.md`/`openclaw/_index.md`/`openclaw-reference.md`/`openclaw-manual.md`/`services/_index.md`/`dev/claude-code-setup.md`에서 참조 제거 + +## 일부러 남긴 것 (별도 확인 필요) + +- **Vault `secret/openclaw/discord/main-bot`** (Discord 봇 토큰) — jarvis.md에만 문서화돼 있었지만, `openclaw-agents.md`의 DarkRouter(kaffa 개인 Discord 페르소나, incus-jp1 agents 프로젝트)도 Discord API를 쓰는 별개 시스템이라 토큰 공유 여부를 문서만으로 확정할 수 없어 **삭제 보류** +- **Vault `secret/messaging/telegram`** (`@AnvilForgeBot` API_ID/API_HASH/BOT_TOKEN) — 같은 이유로 DarkRouter의 텔레그램 브릿지가 동일 토큰을 쓸 가능성을 배제 못해 **삭제 보류**. 웹훅만 해제해 dead endpoint 호출은 막음 +- **Telegram 봇 계정(`@AnvilForgeBot`) 자체** — API로 계정 삭제 불가(@BotFather 수동 조작 필요), 웹훅 해제만 수행 + +## 발견 (본 작업과 무관, 별도 기록) + +- `jarvis.inouter.com`/`telegram-webhook.inouter.com`의 실제 DNS는 **iron-kr(서울) 풀존**을 가리키고 있었으나, [[../infra/network/apisix|apisix.md]] 라우트 설명은 "APISIX(오사카)"로 문서화돼 있었음 — DNS 존과 실제 라우팅 문서 간 drift가 있었던 것으로 보이나, 대상 자체가 폐기되어 더 조사하지 않음 + +## 관련 + +- [[../infra/network/apisix|APISIX 설정 및 운영]] +- [[../infra/compute/infra-hosts|인프라 호스트 및 네트워크]] diff --git a/infra/compute/infra-hosts.md b/infra/compute/infra-hosts.md index dcc7ad3..4459a37 100644 --- a/infra/compute/infra-hosts.md +++ b/infra/compute/infra-hosts.md @@ -228,7 +228,7 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant) | kr1 | ops | 1 | heimdall (tofu 관리) | | kr2 | default | 2 | mariadb-3, postgres-3 | | kr2 | inbest | 7 | cloudflared 포함 | -| hp2 | default | 4 | jarvis, mariadb-1, postgres-1, trader (anomaly-detect 폐기 2026-04-25) | +| hp2 | default | 3 | mariadb-1, postgres-1, trader (anomaly-detect 폐기 2026-04-25, jarvis 폐기 2026-07-21) | | hp2 | inbest | 0 | 프로젝트만 존재, 인스턴스 없음 | 스토리지 풀: jp1=`btrfs-pool` (btrfs, /dev/sda1 268G/109G used), kr1=`default` (dir, NVMe 937G/115G used), kr2=`default` (dir, NVMe 937G/115G used), hp2=`default` (btrfs, `/dev/mapper/pve-root` 126G/63G used — Proxmox 잔재 LVM 레이아웃). @@ -263,7 +263,7 @@ db (proxysql, pgcat), kroki, mq (RabbitmqCluster CR), openmemory (mcp/ui/qdrant) ### hp2 컨테이너 -**default 프로젝트** (4): jarvis (10.100.2.162), mariadb-1 (10.100.2.234), postgres-1 (10.100.2.5), trader (10.100.2.9). _anomaly-detect (10.100.2.164)는 2026-04-25 폐기 — [[../../history/2026-04-25-anomaly-detect-removal|history]]_ +**default 프로젝트** (3): mariadb-1 (10.100.2.234), postgres-1 (10.100.2.5), trader (10.100.2.9). _anomaly-detect (10.100.2.164)는 2026-04-25 폐기 — [[../../history/2026-04-25-anomaly-detect-removal|history]]_. _jarvis (10.100.2.162, OpenClaw 게이트웨이)는 2026-07-21 미사용 판단으로 폐기_ **inbest 프로젝트** (0): 프로젝트만 존재, 인스턴스 없음 (default profile만 사용 중). kr2 inbest와 페어 구성을 고려해 만들어둔 빈 프로젝트로 보임. diff --git a/infra/compute/k3s-to-incus-migration.md b/infra/compute/k3s-to-incus-migration.md index 9db39fd..9684ee0 100644 --- a/infra/compute/k3s-to-incus-migration.md +++ b/infra/compute/k3s-to-incus-migration.md @@ -60,7 +60,7 @@ K3s 운영 부담이 누적되어 Incus 전환 결정. 주요 통증: | kr1 (62GiB + GTX 1080 Ti) | GPU 워크로드 (docker-gpu/podman-gpu 이미지 기반), brokkr(현행), postgres-2 replica | GPU 자원 유지. control-plane 부담 제거 후 GPU 활용도 확대 가능 | | kr2 (30GiB) | inbest 7컨테이너 유지, mariadb-3/postgres-3 유지, **신규 무거운 워크로드 금지** | RAM 작음. K3s 폐기 후에도 OOM 위험 | | hp1 (188GiB) | 메인 호스트 — Gitea, Outline, OpenMemory, SafeLine, VictoriaLogs/Metrics | RAM 여유, 베어메탈 | -| hp2 (188GiB) | hp1 짝꿍 — jarvis, trader 유지 + 분산 부담 분배, mariadb-1/postgres-1 유지 | RAM 여유, Tailscale 가입 | +| hp2 (188GiB) | hp1 짝꿍 — trader 유지 + 분산 부담 분배, mariadb-1/postgres-1 유지 (jarvis는 2026-07-21 폐기) | RAM 여유, Tailscale 가입 | ## Phase 0 — 대체 패턴 인프라 셋업 diff --git a/infra/network/apisix.md b/infra/network/apisix.md index 5244879..2c6550d 100644 --- a/infra/network/apisix.md +++ b/infra/network/apisix.md @@ -197,7 +197,7 @@ etcd 통합/분리 이력: [[2026-04-06-apisix-etcd-consolidation|history]] | Zone | ID | Origin | 방향 | Hostnames (전수) | |---|---|---|---|---| -| iron-kr | 5555227 | 220.120.65.245 | → 서울 (OpenWrt → Traefik) | `iron-kr.b-cdn.net`, actions.it.com, n8n.inouter.com, jarvis.inouter.com, telegram-webhook.inouter.com, vault.inouter.com, outline.inouter.com (사용자 6 + 시스템 1 = 7) | +| iron-kr | 5555227 | 220.120.65.245 | → 서울 (OpenWrt → Traefik) | `iron-kr.b-cdn.net`, actions.it.com, n8n.inouter.com, vault.inouter.com, outline.inouter.com (사용자 4 + 시스템 1 = 5). _jarvis.inouter.com/telegram-webhook.inouter.com은 2026-07-21 jarvis(OpenClaw) 폐기로 제거_ | | iron-jp | 5555247 | 172.233.93.180 | → 오사카 (osaka-gw APISIX) | `iron-jp.b-cdn.net`, anvil.it.com, n8n.anvil.it.com, tg.anvil.it.com, linode.actions.it.com (사용자 4 + 시스템 1 = 5) | | iron-kr-waf | 5555224 | 220.120.65.245:9443 | → 서울 (HAProxy :9443 → K3s APISIX SafeLine WAF) | `iron-kr-waf.b-cdn.net`, juiceshop.keepanker.cv | | iron-git | 5584382 | 220.120.65.245 | → 서울 (gitea, **미들웨어 미장착**) | `iron-git.b-cdn.net`, gitea.inouter.com | @@ -260,11 +260,3 @@ BunnyCDN WAF가 NocoDB JS를 오탐 차단하여 CDN 우회 처리. 시나리오 매칭으로 반복 공격자 탐지. 과거 트러블슈팅 이력: [[2026-03-15-apisix-git-push-500|2026-03-15 git push 500 에러 + http-logger 401]] - -## jarvis.inouter.com 라우트 - -jarvis.inouter.com → APISIX(오사카) → jarvis(10.100.2.162:18789). OpenClaw 게이트웨이 웹 UI 및 webhook 엔드포인트. enable_websocket: true. - -## telegram-webhook.inouter.com 라우트 - -telegram-webhook.inouter.com → APISIX(오사카) → jarvis(10.100.2.162:8787). 텔레그램 봇 webhook 수신. Cloudflare proxied, *.inouter.com 와일드카드 SSL. diff --git a/infra/security/cloudflare.md b/infra/security/cloudflare.md index c2d0bf6..4f21bed 100644 --- a/infra/security/cloudflare.md +++ b/infra/security/cloudflare.md @@ -107,10 +107,8 @@ Syn 이 엣지 관점에서 소유. 일반 DNS 관리 협업은 Heimdall. | `derp.inouter.com` | A | `42.125.196.116` | off | jp1 derp | | `gitea.inouter.com` | CNAME | `iron-git.b-cdn.net` | off | 별도 풀존 (미들웨어 우회) | | `n8n.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | -| `jarvis.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | | `vault.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | | `outline.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | -| `telegram-webhook.inouter.com` | CNAME | `iron-kr.b-cdn.net` | off | | | `desk-api.inouter.com` | A | `172.233.93.180` | ✅ | osaka 직통, CF proxied | | `sftp.inouter.com` | A | `220.120.65.245` | ✅ | OpenWrt 직통, CF proxied | | `git.inouter.com` | A | `52.79.45.166` | off | relay4wd Lightsail | diff --git a/openclaw/_index.md b/openclaw/_index.md index 9c2db8e..fc341fc 100644 --- a/openclaw/_index.md +++ b/openclaw/_index.md @@ -9,7 +9,6 @@ tags: [moc, openclaw] | 문서 | 설명 | |------|------| | [[openclaw-agents]] | OpenClaw 에이전트 시스템 (DarkRouter 등) | -| [[openclaw-jarvis]] | OpenClaw Jarvis 서버 (hp2 컨테이너) | | [[openclaw-manual]] | OpenClaw 매뉴얼 인덱스 | | [[openclaw-ollama]] | OpenClaw + Ollama 로컬 LLM 통합 | | [[openclaw-reference]] | OpenClaw 레퍼런스 매뉴얼 (통합본) | diff --git a/openclaw/openclaw-jarvis.md b/openclaw/openclaw-jarvis.md deleted file mode 100644 index f1b7488..0000000 --- a/openclaw/openclaw-jarvis.md +++ /dev/null @@ -1,79 +0,0 @@ ---- -title: OpenClaw Jarvis 서버 (hp2) -updated: 2026-03-21 -tags: [openclaw, jarvis, hp2] ---- - -## 서버 정보 - -- **호스트**: incus-hp2 컨테이너 `jarvis` -- **IP**: 10.100.2.162 -- **OS**: Debian 13 (trixie) -- **Node**: v22.22.1 (NodeSource, 시스템 설치) -- **OpenClaw**: 2026.3.13 -- **SSH**: `ssh jarvis` (포트 22) -- **웹 UI**: `ssh jarvis-ui` (LocalForward 18789) → `http://localhost:18789` -- **외부 URL**: `https://jarvis.inouter.com` (CF → APISIX → jarvis:18789) - -## 게이트웨이 설정 - -- bind: lan (0.0.0.0:18789) -- auth: token -- trustedProxies: 172.233.93.180, 100.108.39.107, 192.168.9.0/24 -- controlUi.allowedOrigins: localhost, 127.0.0.1, jarvis.inouter.com -- 웹 UI 접근: SSH 포트포워딩으로 로컬 접속 후 자동 페어링 - -## 에이전트 구성 - -| 에이전트 | 모델 | 역할 | 채널 | -|---------|------|------|------| -| main (Jarvis) | openai-codex/gpt-5.4 | 범용 | 없음 | -| irondesk | deepseek/deepseek-chat | 고객지원 프론트 | telegram (@AnvilForgeBot) | -| irontech | deepseek/deepseek-chat | 기술지원 전문가 | 내부 (서브에이전트) | -| testdesk | openai/gpt-4.1-mini | 테스트용 | 없음 | - -## 에이전트 핸드오프 - -- irondesk → irontech: `sessions_spawn(runtime="subagent", agentId="irontech")` 방식 -- openai-codex OAuth 모델은 tool calling 버그 있음 (GitHub #49503) -- deepseek/deepseek-chat, openai/gpt-4.1-mini에서 핸드오프 동작 확인 -- SOUL.md에 구체적인 도구 호출 파라미터 명시 필요 - -## 텔레그램 Webhook - -- 봇: @AnvilForgeBot (토큰: 8264410735:...) -- 모드: webhook -- URL: `https://telegram-webhook.inouter.com/telegram-webhook` -- DNS: telegram-webhook.inouter.com → APISIX(172.233.93.180) → jarvis:8787 -- webhookHost: 0.0.0.0 (외부 접근 허용) -- SSL: Cloudflare proxied + *.inouter.com 와일드카드 - -## Vault 연동 - -- VAULT_ADDR: https://hcv.inouter.com -- 토큰: openclaw-agent 정책 (secret/openclaw/* 읽기/쓰기) -- 환경변수: /etc/environment + ~/.config/environment.d/vault.conf + ~/.profile -- Discord 토큰: Vault SecretRef → secret/openclaw/discord/main-bot/bot_token -- secrets provider에 env 직접 설정 (게이트웨이 프로세스용) - -## OpenMemory 연동 - -- K3s openmemory namespace에 배포됨 -- MCP SSE 엔드포인트: `https://mem0.inouter.com/mcp/jarvis/sse/jarvis` -- acpx 플러그인으로 MCP 서버 등록 -- infer=False 설정 (ConfigMap으로 mcp_server.py 수정, gpt-4o-mini 호출 제거) -- add_memories/search_memory/list_memories/delete_memories 도구 사용 가능 - -## SearXNG - -- K3s searxng namespace에 Helm chart로 배포 -- URL: `http://searxng.inouter.com` -- 검색 엔진: Google, Bing, DuckDuckGo, Brave, Qwant, Wikipedia -- OpenClaw 스킬로 등록 (~/.openclaw/workspace/skills/searxng/) -- Brave Search API 대안/백업용 - -## 알려진 이슈 - -- openai-codex OAuth 모델: tool calling 안 됨 (알려진 버그) -- OpenClaw CLI가 게이트웨이 WS에 연결 실패 (페어링 문제) -- 세션 캐시: SOUL.md 변경 후 반드시 세션 초기화 필요 diff --git a/openclaw/openclaw-manual.md b/openclaw/openclaw-manual.md index aa80692..95983fe 100644 --- a/openclaw/openclaw-manual.md +++ b/openclaw/openclaw-manual.md @@ -17,4 +17,3 @@ tags: [openclaw, agent, ai] ## 운영 문서 - [[openclaw-agents]] — 에이전트 시스템 (DarkRouter, BlackSmith, Stamp, Flux 등) -- [[openclaw-jarvis]] — Jarvis 서버 (hp2) 운영 설정 diff --git a/openclaw/openclaw-reference.md b/openclaw/openclaw-reference.md index 16403de..1a121aa 100644 --- a/openclaw/openclaw-reference.md +++ b/openclaw/openclaw-reference.md @@ -4,7 +4,7 @@ updated: 2026-04-04 tags: [openclaw, agent, ai, reference] --- -기존 13개 개별 문서를 통합한 레퍼런스. 운영 문서: [[openclaw-agents]], [[openclaw-jarvis]], [[openclaw-ollama]] +기존 13개 개별 문서를 통합한 레퍼런스. 운영 문서: [[openclaw-agents]], [[openclaw-ollama]] ## 개요 및 설치 diff --git a/services/_index.md b/services/_index.md index bd9fa3b..3c4b64c 100644 --- a/services/_index.md +++ b/services/_index.md @@ -17,5 +17,4 @@ tags: [moc, services] | [[netbis]] | Netbis 예비서버 (zlambda DR 프록시) | | [[openmemory]] | OpenMemory (Mem0) 시멘틱 메모리 | | [[searxng]] | SearXNG 메타 검색 엔진 | -| [[telegram-bot]] | Telegram 봇 (Discord → FastAPI → DeepSeek) | | [[twilio]] | Twilio 음성/메시지 서비스 | diff --git a/services/bunnycdn-security.md b/services/bunnycdn-security.md index f7ae013..43f3ad4 100644 --- a/services/bunnycdn-security.md +++ b/services/bunnycdn-security.md @@ -44,8 +44,6 @@ IP-list 기반 차단/국가 차단은 현재 layer에 없음. CrowdSec 시나 | iron-kr | `iron-kr.b-cdn.net` | ✅ | | iron-kr | `actions.it.com` | | | iron-kr | `n8n.inouter.com` | | -| iron-kr | `jarvis.inouter.com` | | -| iron-kr | `telegram-webhook.inouter.com` | | | iron-kr | `vault.inouter.com` | | | iron-kr-nowaf | `iron-kr-nowaf.b-cdn.net` | ✅ | | iron-kr-nowaf | `outline.inouter.com` | (WAF 제외용, 2026-04-21 이전) | diff --git a/services/telegram-bot.md b/services/telegram-bot.md deleted file mode 100644 index 9ef37f6..0000000 --- a/services/telegram-bot.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: Telegram 봇 -updated: 2026-04-04 -tags: [service, telegram, bot] ---- - -## 구성 - -구성: Telegram Bot API → 웹훅 ([[cloudflare]] Workers) → FastAPI 서버 → DeepSeek LLM - -현재 운영: [[openclaw-jarvis]] 서버에서 @AnvilForgeBot 웹훅 수신 → OpenClaw irondesk 에이전트