인프라 인벤토리
포트 할당
/Users/axe/CLAUDE.md 가 SSOT. 본 표는 후행 정리.
| 범위 | 프로젝트 |
|---|---|
| 31xx | Blueprint |
| 32xx | Cortex |
| 33xx | Artemis |
| 34xx | Distributa |
| 35xx | Kolon Discussion |
| 36xx | mysrt |
| 37xx | frame |
| 38xx | hive |
| 39xx | axelabs (회사 홈 + @axe/ui) + matrix (인프라 모니터링 MCP) |
| 31xx ~ | docs (3140 = axelabs-docs) |
전체 포트 테이블
| 서비스 | 포트 | 컨테이너 / 프로세스 | 관리 |
|---|---|---|---|
| Blueprint Next.js dev | 3100 | node | 수동 |
| Blueprint WebSocket | 3101 | node | 수동 |
| Blueprint Docker nginx | 3180 / 3143 | Docker | docker compose |
| Cortex Postgres 16 | 3200 | Docker cortex-postgres | docker compose |
| Cortex MCP blue | 3210 | Docker cortex-mcp-blue (alias cortex-mcp active) | docker compose |
| Cortex MCP green | 3211 | Docker cortex-mcp-green (passive) | docker compose (task 15) |
| Cortex proxy (Caddy blue/green selector) | 3212 | Docker axe-cortex-proxy | docker compose (task 15) |
| Cortex cloudflared (legacy, mysrt only) | 20241 | cloudflared | launchd com.cortex.cloudflared — D-cortex-7 후 cortex 라우트 제거, mysrt.axellc.com 만 서비스 |
| Artemis Qdrant | 6333 | Docker | docker compose |
| Artemis Caddy | 3380 / 3343 | Docker | docker compose |
| Distributa Next.js | 3400 | node | 수동 |
| Kolon Discussion | 3500 | node | 수동 |
| mysrt FastAPI | 3600 | uvicorn | launchd com.mysrt.app |
| frame Postgres 16 | 3700 | Docker frame-postgres | docker compose |
| frame MCP blue | 3710 | Docker frame-mcp-blue | docker compose |
| frame MCP green | 3711 | Docker frame-mcp-green | docker compose |
| frame proxy (Caddy blue/green selector) | 3712 | Docker ${CUSTOMER_PREFIX:-axe}-frame-proxy (기본 axe-frame-proxy, 멀티커스터머 prefix 변수화) | docker compose |
| Blueprint Postgres 16 | 3120 | Docker blueprint-postgres | docker compose |
| Blueprint MCP blue | 3152 → 3000 | Docker blueprint-mcp-blue (alias blueprint-mcp active) | docker compose |
| Blueprint MCP green | 3153 → 3000 | Docker blueprint-mcp-green (passive) | docker compose |
| Blueprint MCP proxy (Caddy) | 3151 | Docker axe-blueprint-mcp-proxy | docker compose |
blueprint-mcp blue/green 은 Microsoft Entra 토큰 + Blueprint 플랫폼 토큰(
axe login, D-axe-idp-1) 둘 다 수용 —environment:의BLUEPRINT_ISSUER=https://blueprint.axellc.com(+BLUEPRINT_AUDIENCE) 가 자체 OP 의 resource-server 신뢰를 켠다 (2026-06-04, known-gaps). 미설정 시 Entra 경로만.
| hive Postgres 16 | 3800 | Docker hive-postgres | docker compose |
| hive MCP blue | 3810 | Docker hive-mcp-blue | docker compose |
| hive MCP green | 3811 | Docker hive-mcp-green | docker compose |
| hive proxy (Caddy blue/green selector) | 3812 | Docker axe-hive-proxy | docker compose |
| axelabs-docs (이 문서) | 3140 | node | 수동 / launchd 검토 |
| axelabs (회사 홈 + @axe/ui 쇼케이스) | 3900 | Docker axelabs (Next.js standalone) | docker compose |
| matrix Postgres 16 | 3901 | Docker matrix-postgres | docker compose |
| matrix MCP blue | 3910 | Docker matrix-mcp-blue (alias matrix-mcp active) | docker compose |
| matrix MCP green | 3911 | Docker matrix-mcp-green (passive) | docker compose |
| matrix proxy (Caddy blue/green selector) | 3912 | Docker axe-matrix-proxy (127.0.0.1 bind) | docker compose |
| stream MCP (realchoice) | 8780 | Docker stream-mcp | docker compose |
| magnet MCP (realchoice) | 8770 | Docker magnet-mcp | docker compose |
launchd 서비스 (자동 시작)
| 라벨 | 용도 | 빈도 |
|---|---|---|
com.cortex.cloudflared | mysrt.axellc.com tunnel (legacy 명) — 추후 axe-tunnel Docker 로 이전 후 폐기 | always |
com.artemis.filings | 공시 수집 | 매일 18:00 |
com.artemis.collectors | WatchPath 트리거 | event |
com.mysrt.app | mysrt (:3600) | always |
com.frame.token-rotation | frame JWT 갱신 | 매 8h |
com.frame.integrity-check | nightly 무결성 감사 | 매일 |
com.axe.backup.local | local restic backup | 매일 03:00 KST |
com.axe.ring.push | ring backup push | 매일 03:30 KST |
com.axe.restore-drill | 분기별 restore drill | Jan/Apr/Jul/Oct 15 03:00 |
com.axe.console.rebuild | 운영자 콘솔 rebuild | 매시 |
com.axe.health-check | 인프라 health probe | 매분 |
com.axe.secret-check | secret 만료 알림 | 매일 09:00 |
com.axe.operator-alert-notify | Blueprint silent-drop L2 — [OPERATOR-ALERT] 마커 tail → macOS notification (D-bp-alert-1, 2026-05-22) | always (KeepAlive) |
com.axe.netheal | 인터넷 자가치유 — WAN 끊김 시 DNS플러시→DHCP갱신→WiFi바운스 + ISP 인지 백오프 (D-matrix-4). /usr/local/sbin/axe-netheal.sh, 로그 /var/log/axe-netheal.log | always (KeepAlive) |
전체 list:
launchctl list | grep -E 'cortex|artemis|mysrt|frame|axe' | head -30Docker 컨테이너 (axe-macmini 기준)
axelabs-tunnel cloudflared (axelabs.ai 트래픽)
axe-frame-proxy Caddy (blue/green selector :3712)
frame-mcp-blue FastMCP (:3710)
frame-mcp-green FastMCP (:3711, passive)
frame-postgres PostgreSQL 16 (:3700)
axe-hive-proxy Caddy (blue/green selector :3812)
hive-mcp-blue FastMCP (:3810)
hive-mcp-green FastMCP (:3811, passive)
hive-postgres PostgreSQL 16 (:3800)
axe-blueprint-mcp-proxy Caddy (:3151, upstream alias `blueprint-mcp`)
blueprint-mcp-blue FastMCP (:3000 internal, host :3152, alias `blueprint-mcp` active)
blueprint-mcp-green FastMCP (:3000 internal, host :3153, passive)
blueprint-postgres PostgreSQL 16 (:3120, Prisma schema)
axe-matrix-proxy Caddy (:3912 → upstream alias `matrix-mcp`, 127.0.0.1 bind only)
matrix-mcp-blue Rust/axum (:3910, alias `matrix-mcp` active, MCP + REST + collector)
matrix-mcp-green Rust/axum (:3911, passive)
matrix-postgres PostgreSQL 16 (:3901, ICU ko-KR)
axe-vaultwarden Vaultwarden Timshel
axe-vault-caddy Caddy (vault TLS termination :8222)
axe-caddy Caddy (admin.axelabs.ai)
artemis-* Artemis stack (별도 운영)
blueprint-app Blueprint (axe customer 의 Next.js)확인:
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"핵심 파일
| 파일 | 역할 |
|---|---|
/Users/axe/.axe/customers.yaml | 멀티테넌트 SSOT |
/Users/axe/.axe/bin/axe | 운영자 CLI |
/Users/axe/CLAUDE.md | 포트 / 도메인 / launchd 모음 |
/Users/axe/multi-tenant-platform-plan.md | 플랫폼 마스터 plan |
/Users/axe/frame/DECISIONS.md | D-ops 결정 기록 |
/Users/axe/.axe/state.yaml | 현재 rollout phase |
/Users/axe/.axe/NEXT_SESSION.md | 다음 세션 컨텍스트 |
/Users/axe/.axe/tunnels/axelabs/config.yml | cloudflared ingress |
/Users/axe/.axe/vault/docker-compose.yml | Vaultwarden |
/Users/axe/.axe/vault/.env | Vaultwarden secrets |
/Users/axe/frame/.env.local | frame env_file (vault-pulled, D-ops-17/18). docker-compose env_file 단일 출처 — environment: 블록은 literal config 만 |
/Users/axe/hive/.env.local | hive env_file (vault-pulled). 동일 패턴 (D-ops-18) |
/Users/axe/blueprint/.env | Blueprint env (vault-pulled). compose project_dir=docker/ 라서 docker/.env → ../.env symlink 필요 (bin/setup-env-symlink.sh) |
/Users/axe/.axe/backups/local/ | restic Tier A repo |
/Users/axe/.axe/messages/ | 외부 송부 메시지 (realchoice 등) |
Docker 네트워크
| 네트워크 | 용도 | 멤버 (예시) |
|---|---|---|
frame_default | frame 컨테이너 격리 | postgres, frame-mcp-blue/green |
artemis_default | 플랫폼 공유 | axelabs-tunnel, axe-caddy, blueprint-app, frame-mcp-blue/green (alias) |
확인:
docker network ls
docker network inspect artemis_defaultDNS Records (Cloudflare zone axelabs.ai)
| Type | Name | Content | Proxy |
|---|---|---|---|
| CNAME (Tunnel) | axe | AXELABS-UUID.cfargotunnel.com | ON |
| CNAME (Tunnel) | *.axe | AXELABS-UUID.cfargotunnel.com | ON (wildcard) |
| CNAME (Tunnel) | admin | AXELABS-UUID.cfargotunnel.com | ON |
| CNAME (Tunnel) | docs | AXELABS-UUID.cfargotunnel.com | ON |
| CNAME | www | axelabs.ai | ON |
| TXT | axe | MS=ms10433167 (Microsoft 도메인 검증) | DNS only |
AXELABS-UUID = d8efecdd-2c3f-42de-9925-501433e21394. Cloudflare UI 가 .cfargotunnel.com suffix 를 인식해서 Type 컬럼에 Tunnel 로 표시.
Microsoft Entra ID Apps (axe customer 기준)
| App | Client ID | 용도 |
|---|---|---|
| Frame MCP | 137fc0ef-eb9f-4903-acbc-1a748add349c | 회계 OAuth |
| Hive MCP | b7ead15d-2fea-4864-a5a8-b4b07d1629d4 | HR OAuth |
| Blueprint MCP | 482598f7-540c-462c-9dfd-b957651eb804 | Blueprint platform OAuth (D-bp-mcp-1) |
| axe-vaultwarden | 9d0dc49b-a251-45e1-9f10-74704af3c033 | Vault SSO |
| Blueprint Web | (별도) | Web UI 로그인 |
Application ID URI:
- Frame MCP:
https://axe.axelabs.ai/frame/mcp - Hive MCP:
https://axe.axelabs.ai/hive/mcp - Blueprint MCP:
https://axe.axelabs.ai/blueprint/mcp - Vaultwarden: (Microsoft 기본
api://...)
Cloudflare Tunnel
| Tunnel | ID | 실행 |
|---|---|---|
axelabs | d8efecdd-2c3f-42de-9925-501433e21394 | Docker axelabs-tunnel (axelabs.ai 전체) |
cortex | 35b42a0a-8ef8-467d-be90-2f46b3e0dbd0 | launchd com.cortex.cloudflared (cortex.axellc.com, mysrt.axellc.com) |
axe | 846f512c-7a35-45f0-8cea-d41157318856 | 별도 운영 |
| (customer 측) | (별도) | (each customer macmini) |
확인 (host):
cloudflared tunnel listVaultwarden Organizations
| Organization | 용도 |
|---|---|
axe | 액스코퍼레이션 주식회사 platform (axec entity 가 운영 주체) |
realchoice (예정) | realchoice customer |
Collections (per organization):
frame-jwt-<entity>— 운영자 발급 토큰 보관 (현재 dormant, OAuth 사용 후)frame-secrets— client_id, client_secret 보관infra-secrets— backup password 등
Backup repositories
| Tier | 위치 | Password |
|---|---|---|
| A (local) | /Users/axe/.axe/backups/local/ | Keychain axe.backup.restic.local |
| B (ring) | realchoice:/Users/realchoice/peer-backups/axe/ | Keychain |
| C (cold) | /Volumes/axe-cold-{1,2,3}/restic-repo/ | 종이 메모 |
백업 대상 dump (axe-backup, 매일 03:00): frame · blueprint · hive · mysrt · index (evidence_blob = 죽은 딜 OneDrive/Blueprint 원본 삭제 후 SOLE 사본, D-index-51) + .local/files/. 상세 = backup.
현재 customer 상태
SSOT = /Users/axe/.axe/customers.yaml. 본 표는 후행 정리. 빠른 확인: axe customers list.
Customer 메타
| id | name | public_domain | entities | onboarded | 상태 |
|---|---|---|---|---|---|
| axe | AXE | axe.axelabs.ai | axec (액스코퍼레이션 주식회사) · axev (액스벤처스 주식회사) · axep (액스파트너스 유한책임회사, GP) · axe_ia_001 (액스 투자조합 1호, KIP, GP=axev) | 2025-01-01 | live — 9 service in-house 가동, AXE 가 operator-of-record |
| realchoice | Realchoice | realchoice.axelabs.ai | truvia (트루비아 주식회사). customer 측 frame schema_name = realchoice (legacy_id, sovereignty 유지) | 2026-05-25 | live (self-deploy) — 5/5 endpoint LIVE, customer 측 자체 운영 (D-customer-sovereignty), AXE 측은 software supply + cloudflared catch-all 만 |
axe.entities의 한글 legal_name SoT =customers.yaml의axe.entity_meta.(entity).legal_name(2026-05-27 신설,(entity)=axec/axev/axep/axe_ia_001). frame DB 의 영문legal_name(AX Capital LLC / AX Ventures LLC) 정정은 별 backlogB-frame-entity-legal-name-i18n.axe_ia_001의entity_kind='kip'(개인투자조합) 은 frameshared.entityCHECK constraint['corporate','kip','kvf']의 fund tier.
Customer × Service 매트릭스 (axe customer 가동 현황)
axe customer 의 서비스만 in-house. realchoice 는 customer self-deploy 라 AXE 측 가동 0. 각 service 의 가동 버전 + Docker container 상태 + path.
| Service | 버전 | 컨테이너 | path | 상태 |
|---|---|---|---|---|
| Blueprint | 0.1.0 | blueprint-app + blueprint-mcp-blue/green + blueprint-postgres + axe-blueprint-mcp-proxy | / (apex) + /blueprint/mcp | LIVE (5 컨테이너 healthy) |
| Frame | 0.1.0 | frame-mcp-blue/green + frame-postgres + frame-worker + axe-frame-proxy | /frame + /frame/mcp | LIVE (5 컨테이너 healthy) |
| Hive | 0.1.0 | hive-mcp-blue/green + hive-postgres + axe-hive-proxy | /hive + /hive/mcp | LIVE (4 컨테이너 healthy) |
| Matrix | 0.1.0 | matrix-mcp-blue/green + matrix-postgres + axe-matrix-proxy | /matrix + /matrix/mcp | LIVE (4 컨테이너 healthy, JWT enforced — D-matrix-1) |
| Cortex | 0.1.0 | cortex-mcp-blue/green + cortex-postgres + axe-cortex-proxy | /cortex + /cortex/mcp | ⚠ degraded — postgres healthy but mcp-blue/green Restarting (crash loop, task 15 진행 중 — D-cortex-1..7) |
| Vault | Timshel (axelabs-ai/vault axe.3) | axe-vaultwarden + axe-vault-caddy | /vault | LIVE (2 컨테이너 healthy) |
| Blurgram | (Rust) | blurgram-api + blurgram-postgres + blurgram-redis + blurgram-tunnel | blurgram.com (별 domain, AXE 운영) | LIVE (4 컨테이너 healthy — D-ops-41) |
| Stream | (Python) | — | — (customer realchoice 측에서 사용 예정, axe 측 가동 없음) | manifest only |
| Magnet | (Python) | — | — (customer realchoice 측에서 사용 예정, axe 측 가동 없음) | manifest only |
추가 컨테이너: axelabs (회사 홈 :3900) + axelabs-docs (이 문서 :3140) + axelabs-tunnel (cloudflared) — service 가 아닌 platform infrastructure.
Customer × Service 매트릭스 (realchoice customer)
realchoice 는 customer self-deploy (D-customer-sovereignty) 모델 — AXE 측 컨테이너 0. AXE 책임 = (a) software supply (code/image), (b) 외부 노출 (DNS + cloudflared catch-all).
| Service | 상태 |
|---|---|
| Blueprint | customer self-deploy — realchoice-macmini 의 blueprint-app + mcp blue/green + postgres |
| Frame | customer self-deploy — frame-mcp-blue + frame-postgres + axe-frame-proxy (customer 측) |
| Hive | customer self-deploy — hive-postgres + hive-mcp-blue/green + axe-hive-proxy (customer 측) |
| Vault | customer self-deploy — vault-app (Timshel) + vault-caddy + vault-mcp + vault-cron |
| Ingress | customer self-deploy — axe-realchoice-ingress (host Caddy :8090) |
| Matrix / Cortex / Blurgram / Stream / Magnet | 미사용 (또는 customer 측 결정) |
빠른 검증: curl https://realchoice.axelabs.ai/ → 200 (customer 측 정상 serve).
향후 추가 예정
| 항목 | Phase |
|---|---|
| index 서비스 | Phase 6 |
| 신규 customer onboarding (자동화 완성) | Phase 2 |
| OAuth proxy 재활성 (Anthropic Connector 개선 시) | D-ops-15 후속 |
| docs.axelabs.ai 배포 | 본 문서 작업 직후 |