- Move backend/frontend/messenger/ old paths to _archive/ - Reorganize scripts into scripts/deploy, check, push, setup, misc - Move docs (pptx, docx) to docs/ - Add .claude agents and skills for fullstack/folder-cleanup harness - workspace/ projects remain intact Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
162 lines
6.2 KiB
Markdown
162 lines
6.2 KiB
Markdown
# GUARDiA 시스템 랜드스케이프
|
|
|
|
## 4개 시스템 전체 맵
|
|
|
|
### 1. GUARDiA ITSM (중앙 허브)
|
|
|
|
```
|
|
경로: workspace/guardia-itsm/
|
|
URL: http://localhost:9001 / https://zioinfo.co.kr:8443 (OpenNet)
|
|
언어: Python 3.11 + FastAPI 0.115+
|
|
DB: SQLite (dev) / PostgreSQL 16 (prod)
|
|
LLM: Ollama localhost:11434 (codellama:7b, llama3:8b, nomic-embed-text)
|
|
```
|
|
|
|
**라우터 카테고리 (75개+)**
|
|
|
|
| 카테고리 | 라우터 | 설명 |
|
|
|---------|--------|------|
|
|
| 인증/권한 | auth, ldap, pam, otp | JWT, LDAP/AD, 특권접근, 2FA |
|
|
| SR 관리 | tasks, approvals, assign, batch | SR CRUD, 승인, 자동배정 |
|
|
| CMDB | cmdb, servers | 서버 자산, CI 관계 |
|
|
| AI | chatbot, code_review, anomaly, kb_agent, orchestrator, predictive | Ollama 연동 |
|
|
| 운영 | incidents, oncall, dr, network_devices | 인시던트, DR, 네트워크 |
|
|
| 보안 | audit, vuln_scan, siem, compliance, csap | 감사, 취약점, CSAP |
|
|
| 분석 | analytics, sla, metrics, finops, report | 대시보드, Grafana |
|
|
| 자동화 | rpa, scraping, autonomous, ssh | RPA봇, 스크래핑, SSH |
|
|
| SI 관리 | si_projects, si_wbs, si_requirements, si_issues 등 | SI 프로젝트 |
|
|
| 연동 | external_api, export_import, gateway, groupware | 외부 시스템 |
|
|
| 기관 | institutions, tenant_mgmt | 멀티테넌트 |
|
|
|
|
**핵심 API 엔드포인트**
|
|
|
|
```
|
|
POST /api/auth/login → JWT 발급
|
|
GET /api/tasks → SR 목록
|
|
POST /api/tasks → SR 생성
|
|
GET /api/dashboard → 대시보드 통계
|
|
GET /api/cmdb/servers → 서버 자산
|
|
POST /api/rpa/execute → RPA 실행
|
|
GET /api/scraping/stats → 스크래핑 통계
|
|
POST /api/autonomous/approve/{id} → 자율처리 승인
|
|
WS /ws/notifications → 실시간 알림
|
|
```
|
|
|
|
---
|
|
|
|
### 2. zioinfo-web (홈페이지)
|
|
|
|
```
|
|
경로: workspace/zioinfo-web/
|
|
URL: http://localhost:8082 / https://zioinfo.co.kr:8082
|
|
언어: Java 17 + Spring Boot 3.2.5
|
|
DB: SQLite (dev) / MySQL (prod)
|
|
빌드: mvn clean package -DskipTests → target/zioinfo-web-1.0.0.jar
|
|
배포: /opt/zioinfo/app/app.jar → systemctl restart zioinfo
|
|
```
|
|
|
|
**DB 엔티티 현황**
|
|
|
|
| 엔티티 | 테이블 | 공개 API | 관리자 API |
|
|
|--------|--------|---------|-----------|
|
|
| News | tb_news | GET /api/news | /api/admin/news |
|
|
| Recruit | tb_recruit | GET /api/recruit | /api/admin/recruit |
|
|
| Inquiry | tb_inquiry | POST /api/inquiry | /api/admin/inquiries |
|
|
| CompanyHistory | tb_company_history | GET /api/history | /api/admin/history |
|
|
| Member | tb_member | - | /api/admin/members |
|
|
|
|
**프론트엔드 페이지 (React 18/Vite)**
|
|
|
|
공개: Home, Company, Business, SolutionPage, GuardiaDetail, NewsPage, Recruit, Contact, Support
|
|
관리자: AdminDashboard, AdminNews, AdminRecruit, AdminInquiry, AdminHistory, AdminSettings, AdminMember
|
|
|
|
---
|
|
|
|
### 3. GUARDiA Manager (관리자 포털)
|
|
|
|
```
|
|
경로: workspace/guardia-manager/
|
|
URL: http://localhost:8090 (Nginx 서브)
|
|
백엔드: Python FastAPI 포트 8002
|
|
프론트: React 18 TypeScript + Vite → /var/www/manager/
|
|
인증: ITSM JWT 재사용 (별도 DB 없음)
|
|
```
|
|
|
|
**백엔드 라우터 (4개)**
|
|
|
|
| 라우터 | 접두사 | 역할 |
|
|
|--------|--------|------|
|
|
| system.py | /api/system | 서버 상태(psutil), 서비스 제어(systemctl) |
|
|
| deploy.py | /api/deploy | 배포 트리거, 이력 |
|
|
| config.py | /api/config | .env 편집, Nginx 리로드 |
|
|
| llm.py | /api/llm | Ollama 상태·모델 관리 |
|
|
|
|
**관리 서비스 목록** (ALLOWED_SVCS):
|
|
nginx, zioinfo, zioinfo-deploy, guardia, guardia-manager, gitea, jenkins, postgresql, ollama
|
|
|
|
---
|
|
|
|
### 4. GUARDiA Messenger (모바일 앱)
|
|
|
|
```
|
|
경로: workspace/guardia-messenger/
|
|
플랫폼: Android (APK) / iOS
|
|
빌드: EAS Build (eas build --platform android)
|
|
계정: EAS zioinfo / 프로젝트 ID ca2f72d6-7dda-4491-9590-7ace34b10a88
|
|
패키지: kr.co.zioinfo.guardia
|
|
```
|
|
|
|
**화면 목록 (9개)**
|
|
|
|
| 화면 | 경로 | ITSM API |
|
|
|------|------|---------|
|
|
| 로그인 | (auth)/login.tsx | POST /api/auth/login |
|
|
| 대시보드 | (tabs)/index.tsx | GET /api/dashboard |
|
|
| SR 관리 | (tabs)/sr.tsx | GET/POST /api/tasks |
|
|
| AI 챗봇 | (tabs)/chat.tsx | POST /api/chatbot/message (Ollama) |
|
|
| 알림 | (tabs)/notifications.tsx | WS /ws/notifications |
|
|
| 설정 | (tabs)/settings.tsx | GET /api/auth/me |
|
|
| DR 상태 | (tabs)/dr.tsx | GET /api/dr/status |
|
|
| 네트워크 | (tabs)/network.tsx | GET /api/network_devices |
|
|
|
|
---
|
|
|
|
## 시스템 간 API 의존 관계
|
|
|
|
```
|
|
┌─────────────────────────┐
|
|
│ GUARDiA ITSM (허브) │
|
|
│ localhost:9001 │
|
|
│ :8443 (OpenNet) │
|
|
└───────────┬─────────────┘
|
|
│
|
|
┌──────────────────────┼──────────────────────┐
|
|
│ │ │
|
|
▼ ▼ ▼
|
|
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────────┐
|
|
│ GUARDiA Manager │ │ Messenger (EAS) │ │ zioinfo-web (홈페이지)│
|
|
│ :8002/:8090 │ │ Android/iOS │ │ :8082 │
|
|
│ JWT 재사용 │ │ SecureStore JWT │ │ 독립 (연락처만) │
|
|
└─────────────────┘ └─────────────────┘ └─────────────────────┘
|
|
```
|
|
|
|
## 공유 인프라
|
|
|
|
| 서비스 | 포트 | 역할 |
|
|
|--------|------|------|
|
|
| Nginx | 443/8443/8082/8090/8080 | SSL 역방향 프록시 |
|
|
| PostgreSQL 16 | 5432 | ITSM 운영 DB |
|
|
| Ollama | 11434 | 온프레미스 LLM |
|
|
| Gitea | 3000/9003 | Git 저장소 |
|
|
| Jenkins | 8080/9080 | CI/CD |
|
|
| Deploy Webhook | 9999 | 자동 배포 트리거 |
|
|
|
|
## 배포 서버 정보
|
|
|
|
서버 IP: 101.79.17.164
|
|
서비스 경로:
|
|
- ITSM: `/opt/guardia/app/`
|
|
- 홈페이지: `/opt/zioinfo/app/`
|
|
- Manager: `/var/www/manager/`
|
|
- Docs: `/var/www/docs/`
|