- 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>
249 lines
8.4 KiB
Markdown
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)
|
|
```
|