DOCS/docs/architecture/server-architecture.md
happybell80 ef54297247 docs: 서버 인프라 문서 및 API 가이드 추가
- log-api-guide.md: 로그 조회 API 사용 가이드
- server-architecture.md: 51123/51124 서버 인프라 구성도
- emergency-manual.md: 비상 대응 매뉴얼 및 트러블슈팅 가이드

로컬 개발자와 51124 서버 담당자가 참고할 수 있도록 문서화
2025-07-29 18:54:09 +09:00

96 lines
4.9 KiB
Markdown

# 로빙 서버 인프라 구성도
## 서버 구성
### 51123 서버 (192.168.219.45)
**역할**: 프록시, CI/CD, 인증
```
┌─────────────────────────────────────────────────────────┐
│ 51123 서버 │
│ │
│ ┌─────────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ nginx │ │ Gitea │ │ skill-email │ │
│ │ (80/443) │ │ (3000) │ │ (8501) │ │
│ └─────┬───────┘ └──────┬───────┘ └───────────────┘ │
│ │ │ │
│ │ ┌───────┴──────┐ │
│ │ │ Actions │ │
│ │ │ Runner │ │
│ │ └──────────────┘ │
└────────┼────────────────────────────────────────────────┘
│ 프록시
┌─────────────────────────────────────────────────────────┐
│ 51124 서버 │
│ (192.168.219.52) │
│ │
│ ┌────────────┐ ┌────────────┐ ┌────────────────┐ │
│ │ rb8001 │ │ rb10508 │ │ rb10408 │ │
│ │ (8001) │ │ (10508) │ │ (10408) │ │
│ └────────────┘ └────────────┘ └────────────────┘ │
│ │
│ ┌────────────────────────────────────────────────┐ │
│ │ PostgreSQL Database │ │
│ │ (5432) │ │
│ └────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
```
## 포트 매핑
### 51123 서버
| 서비스 | 내부 포트 | 외부 접근 | 용도 |
|--------|-----------|-----------|------|
| nginx | 80/443 | ro-being.com | 리버스 프록시 |
| Gitea | 3000 | git.ro-being.com | Git 저장소 |
| frontend-base | 8000 | /admin/* | 관리자 대시보드 |
| skill-email | 8501 | /skill-email/* | 이메일 스킬 |
### 51124 서버
| 서비스 | 포트 | nginx 경로 | 용도 |
|--------|------|------------|------|
| rb8001 | 8001 | /rb8001/* | 메인 로빙 서비스 |
| rb10508 | 10508 | /rb10508/* | 로빙 테스트 |
| rb10408 | 10408 | /rb10408/* | 로빙 서비스 |
## 배포 플로우
```
개발자 PC
├─── git push ──→ Gitea (51123)
│ │
│ ├─── webhook ──→ Actions Runner
│ │ │
│ │ ├─── Build
│ │ ├─── Test
│ │ └─── Deploy
│ │
│ ▼
│ SSH (51124)
│ │
└─── https://ro-being.com ←─── nginx ←────────── Services
```
## 네트워크 구성
- **내부 네트워크**: 172.17.0.0/16 (Docker bridge)
- **서버 간 통신**: SSH (포트 51124)
- **외부 도메인**: ro-being.com (HTTPS)
## 보안 설정
1. **방화벽**
- 외부: 80, 443만 개방
- 내부: 필요한 포트만 개방
2. **인증**
- Gitea: 개인 토큰
- Admin API: JWT 토큰
- SSH: 키 기반 인증
3. **SSL/TLS**
- Let's Encrypt 인증서
- 자동 갱신 설정