docs: reference 문서 재구성 (항상성/원칙만 유지)
- 네이밍 컨벤션, 로깅 규칙, 상수 구조, 배포 패턴만 유지 - 자주 변하는 정보(포트, 엔드포인트, 환경변수 값)는 각 서비스 README 참조로 변경 - 항상성(book/)에 맞게 원칙/패턴 중심으로 정리
This commit is contained in:
parent
b2bd860239
commit
4bf36f6abf
@ -20,16 +20,6 @@ Part 2에서 우리는 게임 메커니즘을 활용한 설계를 소개했습
|
||||
- 360_로빙_컨테이너_경량화_전략.md
|
||||
- 370_임베딩_서비스_분리_아키텍처.md
|
||||
|
||||
## 참조 문서 (reference/)
|
||||
개발 시 빠른 참조를 위한 정리 문서:
|
||||
- [API 엔드포인트](./reference/api_endpoints.md)
|
||||
- [인프라](./reference/infrastructure.md)
|
||||
- [환경변수](./reference/environment_variables.md)
|
||||
- [배포 파이프라인](./reference/deployment_pipelines.md)
|
||||
- [상수/설정값](./reference/constants.md)
|
||||
- [네이밍 컨벤션](./reference/naming_conventions.md)
|
||||
- [로깅 규칙](./reference/logging_rules.md)
|
||||
|
||||
## 핵심 메시지
|
||||
컨테이너는 몸, 기억은 영혼. 100개의 로빙이 1개의 스킬 서비스를 공유하는 효율적 아키텍처.
|
||||
|
||||
|
||||
@ -1,140 +0,0 @@
|
||||
# API 엔드포인트 참조
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 개발 시 API 엔드포인트 중복/오류 방지, 빠른 참조
|
||||
|
||||
---
|
||||
|
||||
## rb8001 (메인 서비스, 8001)
|
||||
|
||||
### 메시지 처리
|
||||
| 엔드포인트 | 메서드 | 설명 | 인증 |
|
||||
|-----------|--------|------|------|
|
||||
| `/api/message` | POST | Gateway/Frontend 메시지 처리 | JWT 필수 |
|
||||
| `/api/feedback/chat` | POST | 채팅 피드백 (좋아요/싫어요) | JWT 필수 |
|
||||
|
||||
**참고**: `rb8001/app/router/message_endpoint.py:26`, `rb8001/main.py:85`
|
||||
|
||||
### LLM
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/llm/generate` | POST | 텍스트 생성 |
|
||||
| `/api/llm/summarize` | POST | 요약 |
|
||||
| `/api/llm/complete` | POST | 완성 |
|
||||
| `/api/llm/health` | GET | 헬스체크 |
|
||||
|
||||
**참고**: `rb8001/app/router/llm_endpoint.py:28,55,93,124`
|
||||
|
||||
### 감정 분석
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/emotion/infer` | POST | 감정 추론 |
|
||||
| `/api/emotion/timeseries` | GET | 시계열 데이터 |
|
||||
| `/api/emotion/team-insight` | GET | 팀 인사이트 |
|
||||
| `/api/emotion/process-message` | POST | 메시지 처리 |
|
||||
| `/api/emotion/health` | GET | 헬스체크 |
|
||||
|
||||
**참고**: `rb8001/app/router/emotion_endpoint.py:75,150,188,263,303`
|
||||
|
||||
### 기억 온톨로지
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/v1/memory/event` | POST | 사건 저장 |
|
||||
| `/api/v1/memory/recall` | POST | 회상 |
|
||||
| `/api/v1/memory/stats` | GET | 통계 |
|
||||
|
||||
**참고**: `rb8001/app/router/memory_ontology.py:69,118,181`
|
||||
|
||||
### Intent 리뷰
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/intent-review/queue` | GET | 큐 조회 |
|
||||
| `/api/intent-review/{item_id}/label` | PUT | 라벨 업데이트 |
|
||||
| `/api/intent-review/stats` | GET | 통계 |
|
||||
|
||||
**참고**: `rb8001/app/router/intent_review_endpoint.py:33,58,81`
|
||||
|
||||
### IR Deck 평가
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/ir-deck/upload` | POST | PDF 업로드 |
|
||||
| `/api/ir-deck/evaluate` | POST | 평가 시작 |
|
||||
| `/api/ir-deck/evaluation/{evaluation_id}` | GET | 평가 결과 |
|
||||
| `/api/ir-deck/chat` | POST | 채팅 |
|
||||
| `/api/ir-deck/feedback` | POST | 피드백 |
|
||||
|
||||
**참고**: `rb8001/app/router/ir_deck.py:109,169,263,297,344`
|
||||
|
||||
### Slack
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/slack/events` | POST | Slack 이벤트 |
|
||||
| `/slack/slash` | POST | 슬래시 명령어 |
|
||||
| `/slack/health` | GET | 헬스체크 |
|
||||
|
||||
**참고**: `rb8001/app/router/slack_endpoint.py:33,70,117`
|
||||
|
||||
### DM (Direct Message)
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/dm/send` | POST | 모든 사용자 DM 전송 |
|
||||
| `/dm/send-to-user` | POST | 특정 사용자 DM 전송 |
|
||||
| `/dm/health` | GET | 헬스체크 |
|
||||
|
||||
**참고**: `rb8001/app/router/dm_endpoint.py:10,35,58`
|
||||
|
||||
### Test (개발용)
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/api/test/router-message` | POST | Router 플로우 테스트 |
|
||||
| `/api/test/message` | POST | 메시지 처리 테스트 |
|
||||
| `/api/test/memory/store` | POST | 메모리 저장 테스트 |
|
||||
| `/api/test/memory/search` | POST | 메모리 검색 테스트 |
|
||||
| `/api/test/memory/stats` | GET | 메모리 통계 |
|
||||
| `/api/test/emotion` | POST | 감정 분석 테스트 |
|
||||
| `/api/test/health` | GET | 헬스체크 |
|
||||
|
||||
**참고**: `rb8001/app/router/test_endpoint.py:29,74,110,137,165,175,200`
|
||||
|
||||
---
|
||||
|
||||
## skill-* 서비스
|
||||
|
||||
| 서비스 | 포트 | 주요 엔드포인트 | 참고 |
|
||||
|--------|------|----------------|------|
|
||||
| skill-email | 8501 | `/health` | - |
|
||||
| skill-news | 8505 | `/health` | `skill_news/README.md:30` |
|
||||
| skill-slack | 8502 | `/health` | `skill-slack/README.md:23` |
|
||||
| skill-rag-file | 8508 | `/healthz`, `/api/upload`, `/api/search` | `skill-rag-file/app/main.py:60` |
|
||||
| skill-calendar | 8512 | `/health`, `/api/events` | `skill-calendar/README.md:23` |
|
||||
| skill-embedding | 8515 | `/health`, `/api/embed` | `skill-embedding/docker-compose.yml:14` |
|
||||
| skill-publish | 8511 | `/health` | `skill-publish/docker-compose.yml:9` |
|
||||
|
||||
---
|
||||
|
||||
## robeing-monitor (9024)
|
||||
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/health` | GET | 헬스체크 |
|
||||
| `/api/stats/{robeing_id}` | GET/PUT | 스탯 조회/업데이트 |
|
||||
| `/api/monitor/robeings` | GET | 로빙 상태 |
|
||||
| `/api/monitor/skills` | GET | 스킬 서비스 상태 |
|
||||
|
||||
**참고**: `robeing-monitor/README.md:68`, `robeing-monitor/app/api/monitor.py`
|
||||
|
||||
---
|
||||
|
||||
## Gateway (8100)
|
||||
|
||||
| 엔드포인트 | 메서드 | 설명 |
|
||||
|-----------|--------|------|
|
||||
| `/gateway/slack/events` | POST | Slack 이벤트 프록시 |
|
||||
| `/gateway/*` | * | 각 서비스 프록시 |
|
||||
|
||||
**참고**: `AGENTS.md:88-92`
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 서비스 추가/변경 시 즉시 반영
|
||||
|
||||
@ -1,11 +1,11 @@
|
||||
# 상수/설정값 참조
|
||||
# 상수/설정값 구조 원칙
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 코드 중복 방지, 일관성 유지
|
||||
|
||||
---
|
||||
|
||||
## 스킬 레벨
|
||||
## 스킬 레벨 구조
|
||||
|
||||
| 레벨 | 스킬 | 설명 |
|
||||
|------|------|------|
|
||||
@ -25,7 +25,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 스킬 타입
|
||||
## 스킬 타입 구조
|
||||
|
||||
| 타입 | 설명 | 사용 위치 |
|
||||
|------|------|-----------|
|
||||
@ -40,7 +40,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 감정 분류
|
||||
## 감정 분류 구조
|
||||
|
||||
| 감정 | 설명 |
|
||||
|------|------|
|
||||
@ -56,7 +56,7 @@
|
||||
|
||||
---
|
||||
|
||||
## 스탯 요구사항
|
||||
## 스탯 요구사항 구조
|
||||
|
||||
| 스킬 | Memory | React | Compute | Empathy |
|
||||
|------|--------|-------|---------|---------|
|
||||
@ -70,7 +70,7 @@
|
||||
|
||||
---
|
||||
|
||||
## HTTP 상태 코드
|
||||
## HTTP 상태 코드 사용 원칙
|
||||
|
||||
| 코드 | 의미 | 사용 예시 |
|
||||
|------|------|-----------|
|
||||
@ -82,19 +82,17 @@
|
||||
|
||||
---
|
||||
|
||||
## 로그 레벨
|
||||
## 상수 관리 원칙
|
||||
|
||||
| 레벨 | 설명 | 사용 시점 |
|
||||
|------|------|-----------|
|
||||
| `DEBUG` | 디버그 정보 | 개발 중 |
|
||||
| `INFO` | 일반 정보 | 정상 동작 |
|
||||
| `WARNING` | 경고 | 예상 가능한 문제 |
|
||||
| `ERROR` | 오류 | 처리 실패 |
|
||||
| `CRITICAL` | 치명적 오류 | 시스템 중단 |
|
||||
### 코드에서 관리
|
||||
- 상수 값은 코드의 변수/설정으로 관리
|
||||
- 각 서비스 README.md에 현재 값 참조
|
||||
|
||||
**참고**: `rb8001/app/core/logger.py`
|
||||
### 문서 역할
|
||||
- 구조/패턴만 문서화
|
||||
- 실제 값은 코드/README 참조
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 상수 추가/변경 시 즉시 반영
|
||||
**업데이트**: 구조 변경 시 즉시 반영
|
||||
|
||||
|
||||
82
book/300_architecture/reference/deployment_patterns.md
Normal file
82
book/300_architecture/reference/deployment_patterns.md
Normal file
@ -0,0 +1,82 @@
|
||||
# 배포 패턴 원칙
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 배포 프로세스 일관성 유지
|
||||
|
||||
---
|
||||
|
||||
## 배포 패턴 구조
|
||||
|
||||
### 자동 배포 패턴
|
||||
```
|
||||
로컬 개발 → Gitea 푸시 → Actions (51123) → SSH (51124) → git pull → docker 재시작
|
||||
```
|
||||
|
||||
**참고**: `AGENTS.md:83-85`
|
||||
|
||||
### 수동 배포 패턴
|
||||
```
|
||||
서버 접속 → git pull → docker compose down && docker compose up -d --build
|
||||
```
|
||||
|
||||
**참고**: `AGENTS.md:32`
|
||||
|
||||
---
|
||||
|
||||
## 워크플로우 파일 구조
|
||||
|
||||
### 위치
|
||||
- 경로: `.gitea/workflows/*.yml`
|
||||
- 예시: `rb8001/.gitea/workflows/cicd.yml`
|
||||
|
||||
### 공통 패턴
|
||||
1. SSH 키 설정
|
||||
2. 서버 접속
|
||||
3. git pull
|
||||
4. docker 재시작
|
||||
5. 헬스체크
|
||||
|
||||
**참고**: 각 서비스 `.gitea/workflows/` 디렉토리
|
||||
|
||||
---
|
||||
|
||||
## 배포 검증 원칙
|
||||
|
||||
### 필수 확인
|
||||
- [ ] `docker ps`로 컨테이너 실행 확인
|
||||
- [ ] 헬스체크 엔드포인트 응답 확인
|
||||
- [ ] 로그 확인
|
||||
|
||||
**주의**: Actions 성공 메시지만 믿지 말고 실제 컨테이너 상태 확인
|
||||
|
||||
**참고**: `AGENTS.md:30-31`
|
||||
|
||||
---
|
||||
|
||||
## SSH Secrets 구조
|
||||
|
||||
| Secret 이름 | 설명 | 사용 위치 |
|
||||
|------------|------|-----------|
|
||||
| `SSH_PRIVATE_KEY_51124` | 51124 서버 SSH 키 | Gitea Actions |
|
||||
| `SSH_HOST_51124` | 51124 서버 IP | Gitea Actions |
|
||||
| `SSH_USER_51124` | SSH 사용자 | Gitea Actions |
|
||||
|
||||
**참고**: `DOCS/journey/plans/251206_skill_calendar_자동배포_구성.md`
|
||||
|
||||
---
|
||||
|
||||
## 배포 패턴 모범 사례
|
||||
|
||||
### DO
|
||||
- `set -e`로 에러 즉시 중단
|
||||
- `.env` 파일 존재 확인
|
||||
- 헬스체크 재시도 로직
|
||||
|
||||
### DON'T
|
||||
- Actions 성공 메시지만 믿기
|
||||
- 빌드 실패 시 로그 확인 생략
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 패턴 변경 시 즉시 반영
|
||||
|
||||
@ -1,99 +0,0 @@
|
||||
# 배포 파이프라인 참조
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 배포 프로세스 빠른 참조
|
||||
|
||||
---
|
||||
|
||||
## 자동 배포 (Gitea Actions)
|
||||
|
||||
### 배포 대상 서비스
|
||||
- rb8001
|
||||
- robeing-monitor
|
||||
- skill_email
|
||||
- skill_news
|
||||
- skill-rag-file
|
||||
- skill-publish
|
||||
- skill-slack
|
||||
- fluent-bit
|
||||
- frontend-customer
|
||||
- frontend-ir-valuation
|
||||
|
||||
**참고**: `AGENTS.md:28-29`
|
||||
|
||||
### 배포 플로우
|
||||
1. 로컬에서 코드 수정
|
||||
2. `git push origin main`
|
||||
3. Gitea Actions 자동 실행 (51123 서버)
|
||||
4. SSH로 51124 서버 접속
|
||||
5. `git pull origin main`
|
||||
6. `docker compose down && docker compose up -d --build`
|
||||
7. 헬스체크 확인
|
||||
|
||||
**참고**: `AGENTS.md:83-85`
|
||||
|
||||
### 워크플로우 파일 위치
|
||||
- 경로: `.gitea/workflows/*.yml`
|
||||
- 예시: `rb8001/.gitea/workflows/cicd.yml`
|
||||
|
||||
---
|
||||
|
||||
## 수동 배포
|
||||
|
||||
### 배포 대상 서비스
|
||||
- skill-embedding
|
||||
- skill-calendar
|
||||
|
||||
**참고**: `AGENTS.md:29`
|
||||
|
||||
### 배포 절차
|
||||
```bash
|
||||
cd /home/admin/ivada_project/[서비스명]
|
||||
git pull origin main
|
||||
docker compose down && docker compose up -d --build
|
||||
docker ps # 재시작 확인
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 배포 검증
|
||||
|
||||
### 필수 확인 사항
|
||||
- [ ] `docker ps`로 컨테이너 실행 확인
|
||||
- [ ] 헬스체크 엔드포인트 응답 확인
|
||||
- [ ] 로그 확인 (`docker logs [컨테이너명] --tail 50`)
|
||||
|
||||
**주의**: Actions 성공 메시지만 믿지 말고 실제 컨테이너 상태 확인
|
||||
|
||||
**참고**: `AGENTS.md:30-31`
|
||||
|
||||
---
|
||||
|
||||
## SSH Secrets
|
||||
|
||||
| Secret 이름 | 설명 | 사용 위치 |
|
||||
|------------|------|-----------|
|
||||
| `SSH_PRIVATE_KEY_51124` | 51124 서버 SSH 키 | Gitea Actions |
|
||||
| `SSH_HOST_51124` | 192.168.219.52 | Gitea Actions |
|
||||
| `SSH_USER_51124` | admin | Gitea Actions |
|
||||
|
||||
**참고**: `DOCS/journey/plans/251206_skill_calendar_자동배포_구성.md`
|
||||
|
||||
---
|
||||
|
||||
## 트러블슈팅
|
||||
|
||||
### Actions 캐시 문제
|
||||
- 증상: 워크플로우 수정이 반영되지 않음
|
||||
- 해결: `/root/.cache/act/` 삭제
|
||||
- 참고: `DOCS/journey/troubleshooting/250929_actions_cache_problem.md`
|
||||
|
||||
### SSH 인증 실패
|
||||
- 증상: "Permission denied (publickey)"
|
||||
- 해결: Gitea Secrets의 SSH 키 확인
|
||||
- 참고: `DOCS/journey/troubleshooting/250728_happybell80_nginx프록시및CI배포문제해결.md`
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 배포 프로세스 변경 시 즉시 반영
|
||||
|
||||
@ -1,110 +0,0 @@
|
||||
# 환경변수 참조
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 환경변수 중복/오류 방지, 빠른 참조
|
||||
|
||||
---
|
||||
|
||||
## 공통 환경변수
|
||||
|
||||
| 변수명 | 필수 | 설명 | 예시 |
|
||||
|--------|------|------|------|
|
||||
| `SERVICE_NAME` | 예 | 서비스 이름 | `skill-slack` |
|
||||
| `PORT` | 예 | 서비스 포트 | `8502` |
|
||||
| `LOG_LEVEL` | 선택 | 로그 레벨 | `INFO` |
|
||||
| `DATABASE_URL` | 예* | PostgreSQL 연결 문자열 | `postgresql://...` |
|
||||
| `JWT_SECRET_KEY` | 예* | JWT 시크릿 키 | - |
|
||||
|
||||
*일부 서비스만 필수
|
||||
|
||||
---
|
||||
|
||||
## rb8001
|
||||
|
||||
| 변수명 | 필수 | 설명 | 참고 |
|
||||
|--------|------|------|------|
|
||||
| `DATABASE_URL` | 예 | PostgreSQL 연결 | `rb8001/docker-compose.yml` |
|
||||
| `JWT_SECRET_KEY` | 예 | JWT 인증 | `rb8001/app/auth.py` |
|
||||
| `NEO4J_PASSWORD` | 선택 | Neo4j 비밀번호 | `rb8001/docker-compose.yml` |
|
||||
| `TAVILY_API_KEY` | 선택 | Tavily API 키 | `rb8001/docker-compose.yml` |
|
||||
| `USE_EMOTION_ANALYSIS` | 선택 | 감정 분석 활성화 | `true/false` |
|
||||
| `GEMINI_API_KEY` | 선택 | Gemini API 키 | - |
|
||||
| `SLACK_BOT_TOKEN` | 선택 | Slack 봇 토큰 | - |
|
||||
| `OPENAI_API_KEY` | 선택 | OpenAI API 키 | - |
|
||||
| `ANTHROPIC_API_KEY` | 선택 | Anthropic API 키 | - |
|
||||
|
||||
---
|
||||
|
||||
## skill-* 서비스
|
||||
|
||||
### skill-slack
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `SERVICE_API_KEY` | 예 | 서비스 인증 키 |
|
||||
| `SLACK_BOT_TOKEN` | 예 | Slack 봇 토큰 |
|
||||
| `JWT_SECRET_KEY` | 예 | JWT 검증 |
|
||||
|
||||
**참고**: `skill-slack/app/core/config.py`, `skill-slack/docker-compose.yml`
|
||||
|
||||
### skill-rag-file
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `DATABASE_URL` | 예 | PostgreSQL 연결 |
|
||||
| `CHROMA_PORT` | 선택 | ChromaDB 포트 (기본: 8000) |
|
||||
|
||||
**참고**: `skill-rag-file/docker-compose.yml:11`
|
||||
|
||||
### skill-calendar
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `DATABASE_URL` | 예 | PostgreSQL 연결 (51123) |
|
||||
|
||||
**참고**: `skill-calendar/docker-compose.yml:14`
|
||||
|
||||
### skill-news
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `GEMINI_API_KEY` | 예 | Gemini API 키 |
|
||||
| `DATABASE_URL` | 예 | PostgreSQL 연결 |
|
||||
|
||||
**참고**: `skill_news/README.md:36-39`
|
||||
|
||||
### skill-embedding
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `PORT` | 예 | 서비스 포트 (8515) |
|
||||
| `SERVICE_NAME` | 예 | 서비스 이름 |
|
||||
|
||||
**참고**: `skill-embedding/docker-compose.yml:14-15`
|
||||
|
||||
### skill-publish
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `PORT` | 예 | 서비스 포트 (8511) |
|
||||
|
||||
**참고**: `skill-publish/docker-compose.yml:9`
|
||||
|
||||
---
|
||||
|
||||
## robeing-monitor
|
||||
|
||||
| 변수명 | 필수 | 설명 |
|
||||
|--------|------|------|
|
||||
| `DATABASE_URL` | 예 | PostgreSQL 연결 |
|
||||
| `ROBEING_URLS` | 예 | 로빙 서비스 URL 목록 |
|
||||
| `SKILL_URLS` | 예 | 스킬 서비스 URL 목록 |
|
||||
|
||||
**참고**: `robeing-monitor/README.md:37-42`
|
||||
|
||||
---
|
||||
|
||||
## 주의사항
|
||||
|
||||
- **민감 정보 하드코딩 금지**: API 키, 토큰, 비밀번호는 `.env` 파일에만 저장
|
||||
- **기본값 사용 금지**: 환경변수 미설정 시 명시적 에러 처리
|
||||
- **참고**: `DOCS/book/300_architecture/311_FastAPI_구조_원칙.md` 섹션 12
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 환경변수 추가/변경 시 즉시 반영
|
||||
|
||||
@ -1,96 +0,0 @@
|
||||
# 인프라 참조
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 서버/포트/네트워크 정보 빠른 참조
|
||||
|
||||
---
|
||||
|
||||
## 서버 구성
|
||||
|
||||
| 서버 | IP | 역할 | 주요 서비스 |
|
||||
|------|-----|------|------------|
|
||||
| 51123 | 192.168.219.45 | 메인 서버 | nginx, Gitea, auth-server, robeing-gateway, frontend-base, PostgreSQL |
|
||||
| 51124 | 192.168.219.52 | 로빙/스킬 서버 | rb8001, robeing-monitor, skill-*, ChromaDB |
|
||||
|
||||
**참고**: `AGENTS.md:78-81`, `DOCS/book/300_architecture/310_전체_시스템_구조_컨테이너와_마이크로서비스.md:27-30`
|
||||
|
||||
---
|
||||
|
||||
## 포트 매핑
|
||||
|
||||
### 51123 서버
|
||||
| 서비스 | 포트 | 프로토콜 | 설명 |
|
||||
|--------|------|----------|------|
|
||||
| nginx | 80, 443 | HTTP/HTTPS | 웹 서버 |
|
||||
| Gitea | 3000 | HTTP | Git 저장소 |
|
||||
| robeing-gateway | 8100 | HTTP | API 게이트웨이 |
|
||||
| frontend-base | 8000 | HTTP | 관리자 대시보드 |
|
||||
| auth-server | 9000 | HTTP | 인증 서버 |
|
||||
| PostgreSQL | 5432 | TCP | 데이터베이스 |
|
||||
| Neo4j | 7687 | TCP | 그래프 DB |
|
||||
|
||||
### 51124 서버
|
||||
| 서비스 | 포트 | 프로토콜 | 설명 |
|
||||
|--------|------|----------|------|
|
||||
| rb8001 | 8001 | HTTP | 메인 로빙 서비스 |
|
||||
| robeing-monitor | 9024 | HTTP | 모니터링 서비스 |
|
||||
| skill-email | 8501 | HTTP | 이메일 스킬 |
|
||||
| skill-news | 8505 | HTTP | 뉴스 스킬 |
|
||||
| skill-slack | 8502 | HTTP | Slack 스킬 |
|
||||
| skill-rag-file | 8508 | HTTP | RAG 파일 스킬 |
|
||||
| skill-calendar | 8512 | HTTP | 캘린더 스킬 |
|
||||
| skill-embedding | 8515 | HTTP | 임베딩 스킬 |
|
||||
| skill-publish | 8511 | HTTP | 퍼블리싱 스킬 |
|
||||
| ChromaDB | 8000 | HTTP | 벡터 DB |
|
||||
|
||||
**참고**: `AGENTS.md:78-81`, 각 서비스 `docker-compose.yml`
|
||||
|
||||
---
|
||||
|
||||
## 네트워크 플로우
|
||||
|
||||
### 배포 플로우
|
||||
```
|
||||
로컬 개발 → Gitea 푸시 → Actions (51123) → SSH (51124) → git pull → docker 재시작
|
||||
```
|
||||
|
||||
**참고**: `AGENTS.md:83-85`
|
||||
|
||||
### Admin Dashboard 라우팅
|
||||
```
|
||||
사용자 → nginx (51123) → robeing-gateway (8100) → frontend-base (8000)
|
||||
```
|
||||
|
||||
**참고**: `AGENTS.md:88-92`
|
||||
|
||||
### API 프록시
|
||||
```
|
||||
Frontend → nginx (/gateway/) → Gateway (8100) → 각 서비스
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## SSH 접속
|
||||
|
||||
| 서버 | SSH 포트 | 사용자 | 용도 |
|
||||
|------|----------|--------|------|
|
||||
| 51124 | 51124 | admin | 배포 (Gitea Actions) |
|
||||
|
||||
**참고**: `AGENTS.md:28-29`, Gitea Actions 워크플로우
|
||||
|
||||
---
|
||||
|
||||
## 데이터베이스
|
||||
|
||||
| DB | 서버 | 포트 | 데이터베이스명 | 사용자 |
|
||||
|----|------|------|---------------|--------|
|
||||
| PostgreSQL | 51123 | 5432 | main_db | robeings |
|
||||
| Neo4j | 51123 | 7687 | - | neo4j |
|
||||
| ChromaDB | 51124 | 8000 | - | - |
|
||||
|
||||
**참고**: `DOCS/book/300_architecture/database/tables.md`
|
||||
|
||||
---
|
||||
|
||||
**업데이트**: 서버/포트 변경 시 즉시 반영
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 로깅 규칙 참조
|
||||
# 로깅 규칙 원칙
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 로그 일관성 유지, 디버깅 효율성 향상
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
# 네이밍 컨벤션 참조
|
||||
# 네이밍 컨벤션 원칙
|
||||
|
||||
**작성일**: 2025-12-06
|
||||
**목적**: 코드 일관성 유지, 가독성 향상
|
||||
@ -74,7 +74,7 @@ MAX_RETRIES = 3 # 상수
|
||||
- **UPPER_SNAKE_CASE**: 대문자, 언더스코어
|
||||
- **명확한 의미**: `DATABASE_URL`, `JWT_SECRET_KEY`
|
||||
|
||||
**참고**: `DOCS/book/300_architecture/reference/environment_variables.md`
|
||||
**참고**: 각 서비스 README.md
|
||||
|
||||
---
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user