From 8617642faec4a6e6461976d74b8f0fc63f8405e1 Mon Sep 17 00:00:00 2001 From: byun Date: Tue, 26 May 2026 21:06:50 +0900 Subject: [PATCH] =?UTF-8?q?s1.byunc.com=20=EC=84=9C=EB=B2=84=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1=20=EB=B3=B4=EA=B3=A0=EC=84=9C=20=EC=B6=94=EA=B0=80=20?= =?UTF-8?q?(SteVe,=20EV=20Dashboard,=20nginx,=20=EC=9E=AC=EC=8B=9C?= =?UTF-8?q?=EC=9E=91=20=EB=B0=A9=EB=B2=95)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- index.html | 573 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 573 insertions(+) create mode 100644 index.html diff --git a/index.html b/index.html new file mode 100644 index 0000000..a4c6200 --- /dev/null +++ b/index.html @@ -0,0 +1,573 @@ + + + + + + s1.byunc.com 서버 구성 보고서 + + + + +
+

🖥️ s1.byunc.com 서버 구성 보고서

+

서버 IP: 192.168.0.126  |  도메인: s1.byunc.com  |  최종 업데이트: 2026-05-26

+
+ +
+ + +
+

1. 서버 개요

+
+
+
+
서버 주소
+
192.168.0.126
+
+
+
도메인
+
s1.byunc.com
+
+
+
웹서버
+
nginx 1.22.1 (HTTPS)
+
+
+
SSL
+
Let's Encrypt (Certbot)
+
+
+
컨테이너 엔진
+
Docker + Docker Compose
+
+
+
주요 서비스
+
SteVe OCPP / EV Dashboard
+
+
+
+ ℹ️ +
HTTP(80)로 접속하면 자동으로 HTTPS(443)로 리다이렉트됩니다. 루트(/)는 /steve/로 리다이렉트됩니다.
+
+
+
+ + +
+

2. nginx URL 라우팅 구조

+
+

설정 파일: /etc/nginx/conf.d/s1.byunc.com.conf

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
경로프록시 대상설명
https://s1.byunc.com//steve/ (302 리다이렉트)루트 접속 시 자동 이동
https://s1.byunc.com/steve/192.168.0.126:8180SteVe OCPP 관리 시스템
https://s1.byunc.com/steve/websocket192.168.0.126:8180 (WS)OCPP 충전기 WebSocket 연결 전용
https://s1.byunc.com/dashboard192.168.0.126:8000EV 충전 대시보드 (FastAPI)
https://s1.byunc.com/api/192.168.0.126:8000EV 충전 REST API
https://s1.byunc.com/health192.168.0.126:8000헬스체크 엔드포인트
+
+
+ + +
+

3. SteVe — OCPP 중앙 관리 시스템

+
+
+ +
+
SteVe (SteckdosenVerwaltung)
+
오픈소스 OCPP 1.2 / 1.5 / 1.6 중앙 시스템  운영중
+
+
+ +

접속 정보

+
+
+
접속 URL
+ +
+
+
관리자 아이디
+
admin
+
+
+
관리자 비밀번호
+
1234
+
+
+
내부 포트
+
8180 (HTTP), 8443 (HTTPS)
+
+
+
컨텍스트 경로
+
/steve
+
+
+
Jetty 버전
+
12.1.7
+
+
+ +

주요 기능

+
    +
  • 충전기 관리 — ChargeBox 등록, 상태 조회, 원격 제어 (시작/중지)
  • +
  • 사용자 관리 — OCPP 태그(RFID) 등록/관리, 사용 이력
  • +
  • 거래 내역 — 충전 트랜잭션 로그, 미터값 기록
  • +
  • OCPP 운영 — 1.2/1.5/1.6 SOAP · JSON-over-WebSocket 지원
  • +
  • 예약 — 충전기 예약 관리
  • +
  • Swagger UI/steve/manager/swagger-ui/index.html
  • +
+ +

컨테이너 구성

+ + + + + + +
컨테이너이미지포트역할
steve-app-1steve-app (빌드)8180, 8445Spring Boot + Jetty 앱
steve-db-1mariadb:10.11.163307→3306MariaDB 데이터베이스
+ +

소스 경로

+
/root/steve/steve/          # 프로젝트 루트
+├── src/main/java/...
+│   └── config/JettyConfiguration.java  # HTTP compliance 설정 (중요!)
+├── src/main/resources/
+│   └── application-docker.properties   # DB/포트/인증 설정
+└── docker-compose.yml
+ +
+ ⚠️ +
중요: 컨테이너 시작 시 Maven으로 소스를 직접 빌드합니다. 첫 시작에 3~5분 소요됩니다.
+
+
+
+ + +
+

4. EV Dashboard — 충전 모니터링 대시보드

+
+
+ 📊 +
+
EV Charging Dashboard (FastAPI)
+
EV 충전기 실시간 모니터링 및 REST API  운영중
+
+
+ +

접속 정보

+
+
+
대시보드 URL
+ +
+
+
API URL
+
s1.byunc.com/api/
+
+
+
내부 포트
+
8000 (FastAPI/uvicorn)
+
+
+
DB
+
PostgreSQL 16 (ev-postgres)
+
+
+
Cache
+
Redis (ev-redis:6375)
+
+
+
OCPP 프록시
+
ev-proxy (9002/9003)
+
+
+ +

주요 기능

+
    +
  • 실시간 충전 현황 — 충전기 상태, 충전량, 전력 모니터링
  • +
  • 충전 이력 조회 — 날짜/충전기별 상세 로그
  • +
  • REST API/api/ 경로로 외부 연동 가능
  • +
  • OCPP 프록시 — ev-proxy 컨테이너로 충전기 통신 중계
  • +
  • 시뮬레이터/simulator.html (내부 접근)
  • +
+ +

컨테이너 구성

+ + + + + + + + +
컨테이너이미지포트역할
ev-apiev-charging-backend-api8000FastAPI 메인 앱
ev-proxyev-charging-backend-proxy9002, 9003OCPP 프록시 서버
ev-postgrespostgres:16-alpine5432PostgreSQL DB
ev-redisredis:7-alpine6375→6379Redis 캐시
+ +

소스 경로

+
/root/steve/ev-charging-backend/
+├── app/                # FastAPI 소스
+├── docker-compose.yml
+├── Dockerfile
+├── Dockerfile.proxy
+└── .env               # DB 접속정보 (비공개)
+ +
+ ⚠️ +
주의: 서버 재부팅 후 ev-api가 DB 준비 전에 시작되면 uvicorn이 종료될 수 있습니다. 아래 재시작 방법 참고.
+
+
+
+ + +
+

5. 서비스 재시작 방법

+ +
+
⚡ SteVe 재시작
+ +
+
1
+
+ 디렉토리 이동 +
cd /root/steve/steve
+
+
+
+
2
+
+ 컨테이너 재시작 빌드 포함 3~5분 소요 +
docker compose restart app
+# 또는 완전 재빌드:
+docker compose up -d --build app
+
+
+
+
3
+
+ 시작 확인 +
docker logs steve-app-1 -f
+# "Started SteveApplication" 로그 확인 시 정상
+
+
+
+ +
+
📊 EV Dashboard 재시작
+ +
+
1
+
+ 디렉토리 이동 +
cd /root/steve/ev-charging-backend
+
+
+
+
2
+
+ API 서버 재시작 +
docker compose restart api
+
+
+
+
3
+
+ 시작 확인 +
docker logs ev-api --tail 20
+# "Application startup complete." 확인
+
+
+
+ +
+
🔧 nginx 재시작
+
# 설정 문법 검사 후 리로드
+nginx -t && systemctl reload nginx
+
+# 완전 재시작 (필요 시)
+systemctl restart nginx
+
+# 설정 파일 위치
+/etc/nginx/conf.d/s1.byunc.com.conf
+
+ +
+
🩺 상태 확인 명령어
+
# 전체 컨테이너 상태
+docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
+
+# nginx 상태
+systemctl status nginx
+
+# SteVe 로그 실시간
+docker logs steve-app-1 -f --tail 50
+
+# EV API 로그
+docker logs ev-api --tail 50
+
+# 접속 테스트
+curl -s -o /dev/null -w "%{http_code}" https://s1.byunc.com/steve/
+curl -s -o /dev/null -w "%{http_code}" https://s1.byunc.com/dashboard
+
+
+ + +
+

6. 트러블슈팅

+ +
+

🚨 /steve/ 접속 시 HTTP 400 Bad Request

+

Jetty 12의 strict HTTP compliance가 중복 Host 헤더를 거부하는 현상

+
+ +
+ 해결됨 (2026-05-26): JettyConfiguration.java 추가로 HttpCompliance.RFC7230_LEGACY 적용 완료. + 파일 위치: /root/steve/steve/src/main/java/de/rwth/idsg/steve/config/JettyConfiguration.java +
+
+
# 재발 시 steve 컨테이너 재빌드
+cd /root/steve/steve && docker compose up -d --build app
+
+ +
+

🚨 /dashboard 접속 불가 (ev-api 중단)

+

서버 재부팅 후 PostgreSQL 준비 전에 ev-api가 시작되면 uvicorn 프로세스가 종료됨

+
# 확인
+docker logs ev-api --tail 20
+# "CannotConnectNowError" 또는 "Application startup failed" 시
+
+# 해결
+cd /root/steve/ev-charging-backend && docker compose restart api
+
+ +
+

🚨 nginx SSL 인증서 갱신

+
# 인증서 갱신 (Certbot 자동 갱신)
+certbot renew --dry-run
+certbot renew
+systemctl reload nginx
+
+# 인증서 만료일 확인
+certbot certificates
+
+
+ + +
+

7. 서버 전체 컨테이너 목록

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
컨테이너명용도외부 포트
steve-app-1⚡ SteVe OCPP 관리 시스템8180, 8445
steve-db-1SteVe MariaDB3307
ev-api📊 EV 충전 대시보드 API8000
ev-proxyOCPP 프록시9002, 9003
ev-postgresEV API PostgreSQL5432
ev-redisEV API Redis6375
ev-dashboardEV 대시보드 (별도)8001
gitea🐙 Git 서버 (gitea.byunc.com)8832, 2224
codium💻 VS Code Server8443
nextcloud☁️ 파일 클라우드8081
open-webui🤖 OpenWebUI (AI)3233
n8n_n8n_1⚙️ n8n 자동화5678
immich_server📷 사진 관리2283
jupyter-lab📓 Jupyter Lab8888
metabase📈 Metabase BI3000
vaultwarden🔑 비밀번호 관리8055
homarr🏠 홈 대시보드7575
portainer🐳 Docker 관리 UI9000, 9443
drawio📐 다이어그램 툴8044, 8444
stirling-pdf📄 PDF 도구8084
penpot-*🎨 UI 디자인 도구9001
trilium-notes📝 노트 앱8066
flowise_*🔀 AI 플로우 빌더3001
comfyui-cpu🎨 ComfyUI (이미지 AI)8188
whisper_*🎙️ 음성인식 (Whisper)8800
perplexica_*🔍 AI 검색3011
+
+
+ +
+ + + +