31fa8d573b
- SessionMiddleware 추가 (dbx-main/OMS 와 동일 SECRET_KEY/COOKIE_NAME/MAX_AGE).
미설정 시 fail-fast.
- AuthGuardMiddleware: 미인증 시 HTML 요청은 dbx-main /login?next=... 으로 302,
API 요청은 401 JSON. 예외 경로: /static/, /health, OAuth 콜백, /login, /logout.
- /health/db 엔드포인트 추가 (DB ping) — dbx-main 헬스 배지가 폴링.
- /login, /logout 라우트 추가 (자체 OAuth 없음, dbx-main 으로 302 위임).
- APP_ROOT_PATH 환경변수 도입 — Dockerfile 의 uvicorn --root-path 로 전달.
- templates/index.html: 모든 /static/, /js 절대경로를 {{ root_path }} 기반으로,
window.APP_BASE_PATH 변수 주입.
- static/js/app.js: fetch wrapper 1개로 /api/* 호출에 APP_BASE_PATH prepend,
401 응답 시 dbx-main 로그인으로 자동 이동. 32 곳 호출 사이트는 그대로 둠.
- Cafe24 OAuth 콜백의 hard-coded redirect 도 root_path 인지하도록 수정.
- docker-compose.yml: 호스트 포트 바인딩 제거(0.0.0.0:8002 노출 차단),
expose 추가, web_net(npm_default) 외부 네트워크 attach, healthcheck 추가.
- .env.example 에 SSO/네트워크 항목 추가.
62 lines
1.9 KiB
Bash
62 lines
1.9 KiB
Bash
# ============================================
|
|
# PostgreSQL 접속 정보
|
|
# ============================================
|
|
# 서버에서 docker network 확인 후 host 값 수정
|
|
# docker ps --filter "ancestor=postgres" --format "{{.Names}}"
|
|
POSTGRES_HOST=postgres-db
|
|
POSTGRES_PORT=5432
|
|
POSTGRES_USER=king
|
|
POSTGRES_PASSWORD=여기에_비밀번호_입력
|
|
|
|
# 데이터베이스 이름 (3개 분리되어 있음)
|
|
ITEMCODE_DB=itemcode_db
|
|
ORDERLIST_DB=orderlist_db
|
|
RETURN_DB=return_db
|
|
|
|
# ============================================
|
|
# 네이버 커머스 API
|
|
# ============================================
|
|
NAVER_CLIENT_ID=
|
|
NAVER_CLIENT_SECRET=
|
|
|
|
# ============================================
|
|
# 카페24 API
|
|
# ============================================
|
|
CAFE24_CLIENT_ID=
|
|
CAFE24_CLIENT_SECRET=
|
|
CAFE24_MALL_ID=miraskitchen
|
|
CAFE24_REDIRECT_URI=
|
|
|
|
# ============================================
|
|
# 앱 설정
|
|
# ============================================
|
|
APP_PORT=8002
|
|
|
|
# NPM 리버스 프록시 뒤 서브경로 호스팅
|
|
APP_ROOT_PATH=/corm
|
|
|
|
# ============================================
|
|
# SSO (dbx-main 세션 공유)
|
|
# ============================================
|
|
# dbx-main, OMS 와 반드시 같은 값으로 맞춰야 SSO 동작.
|
|
# 미설정 시 컨테이너 기동 실패 (fail-fast). openssl rand -hex 32 로 생성.
|
|
SESSION_SECRET_KEY=__paste-same-value-as-dbx-main__
|
|
SESSION_COOKIE_NAME=session
|
|
SESSION_SAME_SITE=lax
|
|
SESSION_HTTPS_ONLY=1
|
|
SESSION_MAX_AGE=28800
|
|
|
|
# 세션에서 읽을 사용자 키. dbx-main 이 어느 키로 쓰는지에 맞춰라.
|
|
SESSION_USER_KEY=user_email
|
|
SESSION_NAME_KEY=user_name
|
|
|
|
# 미인증 시 보낼 dbx-main 로그인/로그아웃 URL
|
|
MAIN_LOGIN_URL=https://dbx.no1king.freeddns.org/login
|
|
MAIN_LOGOUT_URL=https://dbx.no1king.freeddns.org/logout
|
|
|
|
# ============================================
|
|
# Docker network
|
|
# ============================================
|
|
POSTGRES_NETWORK=postgres_default
|
|
WEB_NETWORK=npm_default
|