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