본문으로 건너뛰기

서비스 포트 맵

외부로 열리는 것은 하나뿐입니다

AI 스택에서 호스트의 80 / 443 을 잡는 것은 plantpulse-proxy(nginx) 하나입니다. 채팅 화면도, 관리 콘솔도, 각 API 도 전부 이 프록시를 거쳐 들어갑니다.

앱 컨테이너는 더 이상 80 을 발행하지 않습니다

2026-08 이전에는 AI Chat Web 이 80:8080 으로 직접 발행했습니다. 지금은 발행하지 않고 컨테이너 안에서만(expose: 8080) 열립니다. 노출 지점을 하나로 모아 방화벽·감사·TLS 를 한 군데서 처리하기 위해서입니다. 옛 문서를 보고 앱 컨테이너의 80 을 찾고 있었다면 프록시를 보세요.

호스트 이름으로 갈라집니다

프록시는 Host 헤더를 보고 뒷단을 고릅니다. 그래서 DNS 에 아래 이름들을 프록시 IP 로 걸어 두어야 각 서비스에 닿습니다.

호스트뒷단무엇
그 외 전부 (기본)copliot-web:8080AI Chat Web — 채팅 화면
admin.*admin-web:80관리 콘솔
llm.*litellm-proxy:4000LLM 게이트웨이 (OpenAI 호환)
rag.*rag-api:7115RAG 검색 API
timeseries.*insight-api:8970시계열 인사이트 API
parser.*document-understanding-api:7120문서 파싱 API
vision.*vision-api:7130비전 API
TLS 를 누가 끊는지 확인하세요

프록시는 443 도 듣지만, 앞단에 별도 로드밸런서·리버스 프록시를 두는 배포에서는 거기서 TLS 가 끊기고 프록시에는 평문으로 들어옵니다. 앞단 종료를 무시하도록 설정하면 무한 리다이렉트가 납니다. 어느 형태인지 먼저 확인하십시오.


LAN 에 직접 열리는 포트

프록시를 거치지 않고 호스트에 그대로 발행되는 포트입니다. 127.0.0.1 바인딩이 아니라 모든 인터페이스에 열립니다 — 사내망 밖에서 닿지 않도록 방화벽으로 막으십시오.

포트서비스왜 열려 있나
80 / 443plantpulse-proxy유일한 사용자 접점
4000LiteLLMLLM 게이트웨이 직결 (llm.* 로도 접근 가능)
7115RAG APIMCP 클라이언트(Claude Desktop 등) 직결용
8970TimeSeries Insight APIMCP 클라이언트 직결용
9080관리 콘솔 (admin-web)운영자용. admin.* 로도 접근 가능
7474Neo4j Browser그래프 DB 관리 UI
7687Neo4j Bolt그래프 DB 쿼리 프로토콜

프로필을 켜야 뜨는 것

기본 기동에는 포함되지 않고, 해당 compose 프로필로 올릴 때만 뜹니다.

포트서비스프로필
6006Arize Phoenix — 트레이스 UIobservability
5000로컬 이미지 레지스트리registry
5080레지스트리 관리 UIregistry
9090구 Copilot Webarchived
Phoenix 는 제거된 것이 아닙니다

2026-07 개편 때 기본 스택에서 빠졌을 뿐, observability 프로필로 되살릴 수 있습니다. 관리 콘솔에서도 프록시를 통해 볼 수 있습니다. 같은 개편으로 빠진 Langflow(7860)· Jupyter(3500)는 정말 제거되어 되살릴 수 없습니다.


내부 전용 (발행하지 않음)

compose 네트워크 안에서 서비스 이름으로만 닿습니다. 호스트에서 nc -z 로 찔러도 응답이 없는 것이 정상입니다.

서비스내부 주소역할
AI Chat Webcopliot-web:8080채팅 화면 (프록시 기본 뒷단)
관리 콘솔 백엔드admin-api인증 정본. admin-web 의 nginx 가 넘긴다
문서 파싱 APIdocument-understanding-api:7120parser.* 뒷단
비전 APIvision-api:7130vision.* 뒷단
LightRAGlightrag:9621RAG 엔진. 문서 관리 WebUI(/webui)
Qdrantqdrant:6333벡터 DB
Doclingdocling-serve:5001문서 변환
vLLM (생성)vllm-llm:8000로컬 LLM 추론
vLLM (임베딩)vllm-emb:8000임베딩
vLLM (리랭크)vllm-rerank:8000리랭킹
시계열 추론timeseries-inference:8980인사이트 모델 서빙
DCGM Exporterdcgm-exporterGPU 메트릭
구 서비스 두 종은 아카이브되었습니다

plantpulse-mcp-server(50000)와 plantpulse-ontology(8888)는 독립 서비스로 존재하지 않습니다. MCP·온톨로지 도구는 플랫폼 server-web 통합 MCP(/api/v5/mcp, api_key 인증)가 제공합니다.


플랫폼에서 빌려 쓰는 것

PostgreSQL(5432) · Cassandra(9042) · Redis/Valkey(6379) · MinIO(9000/9001)는 AI 스택이 띄우지 않습니다. PlantPulse 플랫폼 설치본을 공용으로 씁니다. 이 포트들의 방화벽·계정은 플랫폼 쪽 보안 설정을 따릅니다.


포트 상태 확인

전체 상태 확인

cd /home/kopens/plantpulse-ai/bin
./status.sh

health.sh 는 각 서비스의 헬스 엔드포인트까지 찔러 봅니다. 컨테이너가 떠 있는 것과 실제로 응답하는 것은 다르므로, 장애 조사에서는 이쪽을 쓰십시오.

개별 포트 확인

# 특정 포트 리스닝 확인
nc -z 127.0.0.1 <포트> && echo "OK" || echo "DOWN"

# 포트 사용 프로세스 확인
ss -tlnp | grep <포트>

방화벽에 열 것

대상열 포트
전체 사용자80 / 443 (프록시)
운영자 (사내망)9080 관리 콘솔, 7474 Neo4j Browser
MCP 클라이언트 (사내망)7115 RAG, 8970 TimeSeries

그 밖의 포트는 사내망 안에서도 열 이유가 없습니다. 데이터베이스 포트(5432 · 9042 · 6333 · 6379 · 7687 · 9000)는 어떤 경우에도 외부에 노출하지 마십시오.