# 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) ```