zioinfo-mail/manual/18_zio서버_설치SW_목록.md
DESKTOP-TKLFCPR\ython 11c670f2a0 refactor: 101.79.17.164 → zioinfo.co.kr 전체 도메인 변환 + Manager UI 배포
- 37개 파일 IP → zioinfo.co.kr 치환 (소스/매뉴얼/설정/하네스)
- Manager DrConsole/NetworkConsole/CsapConsole 빌드 + /var/www/manager/ 배포
- 테스트: Manager HTTP 200, ITSM 신규 API 7개 전체 200

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

249 lines
8.4 KiB
Markdown

# zio-server 설치 SW 목록 및 구성 명세
> **서버**: zio-server | **IP**: zioinfo.co.kr | **작성일**: 2026-05-30
> **OS**: Ubuntu 24.04.1 LTS (Noble Numbat) | **Provider**: NCloud (네이버 클라우드)
---
## 1. 서버 사양
| 항목 | 사양 |
|------|------|
| CPU | AMD EPYC 9454P (2 vCPU) |
| RAM | 7.8 GB |
| Disk | 99 GB (사용 15 GB / 여유 80 GB) |
| OS | Ubuntu 24.04.1 LTS x86_64 |
| 네트워크 | 공인 IP zioinfo.co.kr |
---
## 2. 설치 소프트웨어 목록
### 2-1. 런타임 / 언어
| SW | 버전 | 설치 경로 | 용도 |
|----|------|-----------|------|
| OpenJDK | 21.0.10 | `/usr/lib/jvm/java-21-openjdk-amd64` | Spring Boot 실행 |
| Node.js | 20.20.2 (LTS) | `/usr/bin/node` | React 빌드 |
| npm | 10.8.2 | `/usr/bin/npm` | 패키지 관리 |
| Python | 3.12.3 | `/usr/bin/python3` | GUARDiA ITSM, 배포 스크립트 |
| Apache Maven | 3.8.7 | `/usr/share/maven` | Spring Boot 빌드 |
### 2-2. 웹 서버 / 프록시
| SW | 버전 | 설치 경로 | 용도 |
|----|------|-----------|------|
| Nginx | 1.24.0 | `/etc/nginx` | 리버스 프록시, 정적 파일 서빙 |
### 2-3. 데이터베이스
| SW | 버전 | 설치 경로 | 용도 |
|----|------|-----------|------|
| PostgreSQL | 16.11 | `/var/lib/postgresql/16` | GUARDiA ITSM DB, Gitea DB |
| SQLite (내장) | 3.45.3 | JAR 내장 | 지오정보기술 홈페이지 DB |
**PostgreSQL 데이터베이스 목록:**
| DB 이름 | 소유자 | 용도 |
|---------|--------|------|
| `guardia_db` | guardia | GUARDiA ITSM 운영 DB |
| `zioinfo_db` | guardia | 지오정보기술 예비 DB |
| `gitea_db` | gitea | Gitea Git 서버 DB |
### 2-4. AI / LLM
| SW | 버전 | 설치 경로 | 용도 |
|----|------|-----------|------|
| Ollama | 0.24.0 | `/usr/local/bin/ollama` | 온프레미스 LLM 엔진 |
| Llama3:8b | — | `~/.ollama/models` | GUARDiA AI 에이전트 LLM (4.7 GB) |
### 2-5. DevOps / CI-CD
| SW | 버전 | 설치 경로 | 용도 |
|----|------|-----------|------|
| Gitea | 1.22.3 | `/opt/gitea/bin/gitea` | 온프레미스 Git 서버 |
| Jenkins | 2.504.1 LTS | `/opt/jenkins/jenkins.war` | CI/CD 파이프라인 (초기설정 필요) |
| ZioInfo Deploy Server | — | `/opt/zioinfo/deploy_server.py` | Gitea 웹훅 → 자동 빌드·배포 (Python) |
### 2-6. 애플리케이션 서비스
| 서비스 | 기술 스택 | 버전 | 용도 |
|--------|----------|------|------|
| 지오정보기술 홈페이지 | Spring Boot 3.2.5 + React | 1.0.0 | (주)지오정보기술 기업 홈페이지 |
| GUARDiA ITSM | Python FastAPI + PostgreSQL | — | AI 기반 인프라 자율 운영 ITSM |
---
## 3. 포트 구성
| 포트 | 프로토콜 | 서비스 | 외부 접근 |
|------|----------|--------|----------|
| 22 | TCP | SSH | ✅ 허용 (키 인증) |
| 80 | TCP | Nginx (홈페이지) | ✅ 허용 |
| 443 | TCP | HTTPS (미설정) | — |
| 3000 | TCP | Gitea Git 서버 | ✅ 허용 |
| 8001 | TCP | GUARDiA ITSM (FastAPI) | ✅ 허용 |
| 8080 | TCP | Jenkins CI/CD | ✅ 허용 |
| 8082 | TCP | Spring Boot (홈페이지 API) | ✅ 허용 |
| 8088 | TCP | Nginx → Jenkins 프록시 | ✅ 허용 |
| 9001 | TCP | Nginx → GUARDiA 프록시 | ✅ 허용 |
| 9999 | TCP | Deploy Webhook 서버 | ✅ 허용 (내부 권장) |
| 5432 | TCP | PostgreSQL | ❌ 내부 전용 (127.0.0.1) |
| 11434 | TCP | Ollama LLM API | ❌ 내부 전용 (127.0.0.1) |
---
## 4. 디렉터리 구조
```
/
├── etc/
│ ├── nginx/
│ │ ├── sites-available/
│ │ │ ├── zioinfo # 홈페이지 Nginx 설정
│ │ │ ├── guardia # GUARDiA ITSM Nginx 설정
│ │ │ ├── gitea # Gitea Nginx 설정
│ │ │ └── jenkins # Jenkins Nginx 설정
│ │ └── sites-enabled/ # 활성 설정 심볼릭 링크
│ ├── gitea/
│ │ └── app.ini # Gitea 설정 파일
│ └── systemd/system/
│ ├── zioinfo.service # 홈페이지 Spring Boot 서비스
│ ├── zioinfo-deploy.service # CI/CD 웹훅 서버
│ ├── guardia.service # GUARDiA ITSM 서비스
│ ├── gitea.service # Gitea 서비스
│ ├── jenkins.service # Jenkins 서비스
│ └── ollama.service # Ollama LLM 서비스
├── opt/
│ ├── zioinfo/
│ │ ├── app/
│ │ │ ├── app.jar # Spring Boot 실행 JAR
│ │ │ └── data/ # SQLite DB 디렉터리
│ │ ├── src/ # 소스 코드 (Gitea 클론)
│ │ └── deploy_server.py # CI/CD 웹훅 서버
│ ├── guardia/
│ │ ├── app/ # GUARDiA ITSM 소스
│ │ ├── venv/ # Python 가상환경
│ │ ├── logs/ # 애플리케이션 로그
│ │ └── uploads/ # 업로드 파일
│ ├── gitea/
│ │ └── bin/gitea # Gitea 바이너리
│ └── jenkins/
│ └── jenkins.war # Jenkins WAR 파일
├── var/
│ ├── www/
│ │ └── zioinfo/ # React 빌드 정적 파일
│ ├── lib/
│ │ ├── jenkins/ # Jenkins 홈 디렉터리
│ │ └── gitea/ # Gitea 데이터 디렉터리
│ │ └── data/repositories/ # Git 저장소
│ └── log/
│ └── zioinfo/
│ ├── spring.log # Spring Boot 로그
│ └── deploy.log # CI/CD 배포 로그
└── home/
└── git/ # Gitea 시스템 사용자 홈
```
---
## 5. 계정 및 자격증명
> **보안 주의**: 이 문서는 내부망 전용입니다. 외부 공개 금지.
### 5-1. 시스템 계정
| 계정 | 역할 | 비밀번호 |
|------|------|---------|
| `root` | 서버 관리자 | `1q2w3e!Q` |
| `ubuntu` | 앱 실행 계정 (예비) | `ubuntu123` |
| `jenkins` | Jenkins / Spring Boot 실행 | 시스템 계정 (로그인 불가) |
| `git` | Gitea 실행 | 시스템 계정 (로그인 불가) |
| `postgres` | PostgreSQL 관리 | 시스템 계정 |
### 5-2. 서비스 계정
| 서비스 | 아이디 | 비밀번호 | 권한 |
|--------|--------|---------|------|
| **홈페이지 관리자** | `admin` | `Admin@2026!` | 전체 관리 |
| **Gitea** | `zio` | `Zio@Admin2026!` | 관리자 |
| **Jenkins** | `admin` | `Admin@2026!` | 전체 |
| **PostgreSQL (guardia)** | `guardia` | `G@urd1a_2026!` | guardia_db, zioinfo_db |
| **PostgreSQL (gitea)** | `gitea` | `G1tea_2026!` | gitea_db |
| **GUARDiA ITSM** | `admin` | `Admin@2026!` | 전체 |
### 5-3. SSH 접속
```bash
# PEM 키 방식 (권장)
ssh -i "zio-server-key.pem" root@zioinfo.co.kr
# 비밀번호 방식
ssh root@zioinfo.co.kr
# 비밀번호: 1q2w3e!Q
```
---
## 6. Python 가상환경 패키지 (GUARDiA)
경로: `/opt/guardia/venv`
| 패키지 | 버전 | 용도 |
|--------|------|------|
| fastapi | 0.115.0 | API 프레임워크 |
| uvicorn | 0.30.0 | ASGI 서버 |
| sqlalchemy | 2.0.35 | ORM |
| asyncpg | 0.29.0 | PostgreSQL 비동기 드라이버 |
| psycopg2-binary | 2.9.9 | PostgreSQL 드라이버 |
| paramiko | 3.4.0 | SSH/SFTP 에이전트리스 연결 |
| python-jose | 3.3.0 | JWT 인증 |
| passlib | 1.7.4 | 비밀번호 해싱 |
| openpyxl | 3.1.5 | Excel 출력 |
| cryptography | 43.0.1 | AES-256 암호화 |
---
## 7. Spring Boot 의존성 (홈페이지)
| 의존성 | 버전 | 용도 |
|--------|------|------|
| spring-boot-starter-web | 3.2.5 | REST API |
| spring-boot-starter-data-jpa | 3.2.5 | ORM |
| spring-boot-starter-security | 3.2.5 | JWT 인증 |
| spring-boot-starter-mail | 3.2.5 | 이메일 발송 |
| sqlite-jdbc | 3.45.3.0 | SQLite 드라이버 |
| jjwt-api | 0.12.3 | JWT 처리 |
| lombok | — | 코드 생성 |
---
## 8. Gitea 저장소 목록
| 저장소 | URL | 용도 |
|--------|-----|------|
| `zio/zioinfo-web` | `http://zioinfo.co.kr:3000/zio/zioinfo-web` | 홈페이지 소스 |
| `zio/guardia-itsm` | `http://zioinfo.co.kr:3000/zio/guardia-itsm` | GUARDiA ITSM 소스 |
---
## 9. 방화벽 (UFW) 규칙
```bash
# 현재 활성 규칙 조회
ufw status
# 주요 허용 포트
22/tcp (SSH)
80/tcp (HTTP - 홈페이지)
443/tcp (HTTPS - 미사용)
3000/tcp (Gitea)
8001/tcp (GUARDiA ITSM)
8080/tcp (Jenkins)
8082/tcp (Spring Boot API)
9999/tcp (Deploy Webhook)
```