zioinfo-mail/manual/42_zio서버_소프트웨어_구성도.md
DESKTOP-TKLFCPR\ython 7c0472b989 feat(guardia-page): update to v2.0 features + manuals + Jenkins exclude
GuardiaDetail.jsx:
- FEATURES: 8 -> 12 (RPA봇, 스크랩핑, DR, CSAP, 자연어명령 추가)
- BOT_COMMANDS: 19 -> 44 (스크랩봇, CI/CD, PMS, 보안, 디자인 명령어 추가)
- TECH_STACK: Vector DB(pgvector/ChromaDB/LangChain), 자동화봇 추가

Jenkinsfile:
- sparse checkout: manual/ 폴더 체크아웃 제외 (배포 대상 아님)
- workspace/zioinfo-web/Jenkinsfile 동일 적용

Manuals:
- manual/41_zio서버_DB_연결정보.md: PostgreSQL/Gitea/Ollama/ChromaDB/SMTP/SSH
- manual/42_zio서버_소프트웨어_구성도.md: 전체 SW 구성도 + 아키텍처

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-31 21:10:36 +09:00

7.7 KiB

zio 서버 소프트웨어 구성도

서버: 101.79.17.164 (zioinfo.co.kr)
OS: Ubuntu 24.04 LTS | RAM: 7.8GB | Disk: 99GB
최종 업데이트: 2026-05-31


전체 아키텍처

인터넷
  │
  ├─ :80/:443   ─── Nginx 1.24 (리버스 프록시 + SSL)
  │               │
  │               ├─ / → :8082   홈페이지 (Spring Boot)
  │               ├─ :8443 → :9001  GUARDiA ITSM (FastAPI) [HTTPS]
  │               ├─ :8001 → :8082  홈페이지 API [HTTP]
  │               ├─ :8090 → :8002  GUARDiA Manager (FastAPI)
  │               └─ :3000 → :3000  Gitea
  │
  └─ :22        ─── SSH (root 접속)

내부 서비스
  ├─ :9001   GUARDiA ITSM (uvicorn, 127.0.0.1)
  ├─ :8002   GUARDiA Manager (uvicorn, 127.0.0.1)
  ├─ :8082   홈페이지 (Spring Boot JAR)
  ├─ :5432   PostgreSQL 16
  ├─ :11434  Ollama (LLM 서버)
  ├─ :9999   Deploy Webhook (자동 배포)
  ├─ :3000   Gitea (Git 서버)
  └─ :8080   Jenkins (CI/CD)

메일 서버
  ├─ :25/:587  Postfix (SMTP)
  └─ :143/:993 Dovecot (IMAP)

설치 소프트웨어 전체 목록

분류 SW 버전 포트 경로 용도
웹서버 Nginx 1.24 80/443/8001/8090/8443 /etc/nginx/ 리버스 프록시, SSL
홈페이지 Spring Boot 3.2.5 8082 /opt/zioinfo/app/app.jar 지오정보기술 홈페이지
ITSM GUARDiA ITSM v2.0 9001 /opt/guardia/app/ FastAPI ITSM 플랫폼
Manager GUARDiA Manager v1.0 8002 /opt/manager/ 관리자 포털
DB PostgreSQL 16.11 5432 /var/lib/postgresql/ 메인 RDBMS
벡터DB pgvector 0.6.0 5432 (확장) PostgreSQL 확장 벡터 검색
벡터DB ChromaDB 1.5.9 - (파일) /opt/guardia/chroma/ RAG·임베딩 저장
AI/LLM Ollama 0.24 11434 /usr/local/bin/ollama 온프레미스 LLM
AI 모델 llama3:8b - - Ollama 관리 텍스트 생성
AI 모델 codellama:7b - - Ollama 관리 코드 생성·리뷰
AI 모델 nomic-embed-text - - Ollama 관리 768차원 임베딩
AI 프레임워크 LangChain 1.3.2 - Python 패키지 RAG 파이프라인
형상관리 Gitea 1.22.3 3000 /opt/gitea/ Git 서버
CI/CD Jenkins 2.555 8080 /var/lib/jenkins/ 빌드·배포 자동화
배포 Deploy Webhook - 9999 /opt/zioinfo/deploy_server.py Gitea→자동배포
메일 Postfix 3.8.6 25/587 /etc/postfix/ SMTP 발신
메일 Dovecot 2.3.21 143/993 /etc/dovecot/ IMAP 수신
Python Python 3.11 - /opt/guardia/venv/ ITSM·Manager 런타임
Java OpenJDK 17 - /usr/lib/jvm/ Spring Boot 런타임
Node.js Node.js 20 - /usr/bin/node 빌드 도구
SSL Let's Encrypt - - /etc/letsencrypt/ HTTPS 인증서

GUARDiA ITSM 상세 구성

/opt/guardia/app/
├── main.py              ← FastAPI 진입점 (포트 9001)
├── models.py            ← ORM 모델 (50+ 테이블)
├── database.py          ← DB 연결
├── core/
│   ├── auth.py          ← JWT 인증
│   ├── rpa_engine.py    ← RPA 봇 엔진
│   ├── scraping_engine.py ← 스크랩핑 엔진
│   ├── nl_command.py    ← 자연어 명령 파서
│   ├── scheduler.py     ← APScheduler 크론
│   └── ...
├── routers/             ← 80개+ API 라우터
│   ├── rpa.py           ← RPA 봇
│   ├── scraping.py      ← 스크랩핑
│   ├── messenger.py     ← 봇 명령어 (45개+)
│   └── ...
├── static/              ← HTML5 프론트엔드
│   ├── index.html
│   ├── app.js
│   └── style.css
└── rpa_rules.json       ← Validation 학습 규칙 (영속)

Python 가상환경 패키지 (주요)

# /opt/guardia/venv/bin/pip list | grep -E "fastapi|sqlalchemy|paramiko|langchain|chroma|pgvector|httpx|playwright"

fastapi          0.115.x
sqlalchemy       2.0.x
alembic          1.13.x
paramiko         3.x
httpx            0.27.0
uvicorn          0.29.x
langchain        1.3.2
langchain-core   0.3.x
chromadb         1.5.9
pgvector         0.3.x
psycopg2-binary  2.9.x
beautifulsoup4   4.12.x
lxml             6.1.1
apscheduler      3.10.x
python-jose      3.3.x
passlib          1.7.x
pyotp            2.9.x
pandas           2.2.x
openpyxl         3.1.x

홈페이지 (Spring Boot) 구조

/opt/zioinfo/
├── app/app.jar                    ← 실행 JAR
└── src/                           ← 소스 (Gitea에서 pull)
    ├── frontend/                  ← React 18 + Vite
    │   ├── src/pages/             ← 페이지 컴포넌트
    │   ├── src/styles/tokens.css  ← Variant 디자인 토큰
    │   └── public/
    │       ├── screenshots/       ← 스크린샷 이미지
    │       ├── zioinfo-logo.png   ← 로고 (라이트)
    │       ├── zioinfo-logo-dark.png ← 로고 (다크)
    │       └── CI.jpg             ← CI 심볼
    └── backend/                   ← Spring Boot 3.2.5
        └── src/main/java/kr/co/zioinfo/web/
            ├── model/             ← JPA 엔티티
            │   ├── CompanyHistory.java   ← 연혁 DB
            │   └── ...
            ├── repository/        ← JPA 레포지토리
            ├── controller/        ← REST API
            └── config/
                └── DataInitializer.java  ← 초기 데이터

Gitea 저장소 구성

http://localhost:3000/zio/
├── zioinfo-web      ← 홈페이지 (frontend + backend)
└── guardia-itsm     ← GUARDiA ITSM

Webhook 설정


systemd 서비스 파일

서비스명 파일 위치 시작 명령
zioinfo /etc/systemd/system/zioinfo.service java -jar /opt/zioinfo/app/app.jar --server.port=8082
guardia /etc/systemd/system/guardia.service uvicorn main:app --host 127.0.0.1 --port 9001
guardia-manager /etc/systemd/system/guardia-manager.service uvicorn main:app --host 127.0.0.1 --port 8002
zioinfo-deploy /etc/systemd/system/zioinfo-deploy.service python3 /opt/zioinfo/deploy_server.py
gitea /etc/systemd/system/gitea.service Gitea 공식
jenkins /etc/systemd/system/jenkins.service Jenkins 공식
postgresql /lib/systemd/system/postgresql.service PG 공식
ollama /etc/systemd/system/ollama.service ollama serve
postfix 시스템 기본 Postfix 공식
dovecot 시스템 기본 Dovecot 공식

Nginx 가상 호스트 구성

/etc/nginx/sites-enabled/zioinfo
  ├── :80  → 301 redirect to HTTPS
  ├── :443 → SSL + /api/ → :8082 (Spring Boot)
  │          → / → /var/www/zioinfo/ (정적 파일)
  ├── :8001 → /api/ → :8082
  ├── :8443 → SSL + / → :9001 (ITSM FastAPI)
  │          → /api/ → :9001
  ├── :8090 → / → :8002 (Manager FastAPI)
  └── :3000 → Gitea

SSL 인증서

도메인 만료일 방식
zioinfo.co.kr (Let's Encrypt 90일 자동 갱신) Certbot
*.zioinfo.co.kr - 와일드카드 미설정
# 인증서 확인
certbot certificates

# 수동 갱신
certbot renew --nginx