# DBX CORM (CS Web Program) CS / 발주 / 반품 통합 관리 웹 애플리케이션. FastAPI + PostgreSQL 기반, Docker로 실행. --- ## 기술 스택 - **Backend**: Python 3.10, FastAPI, Uvicorn - **DB**: PostgreSQL (외부 Docker 컨테이너 연결) - **외부 연동**: 네이버 커머스 API, 카페24 API, Google Sheets - **Frontend**: Jinja2 템플릿 + Vanilla JS --- ## 사용 DB | DB 이름 | 용도 | |---|---| | `itemcode_db` | 품목코드 마스터 | | `orderlist_db` | 주문 정보 조회 | | `return_db` | 반품 데이터 저장 | 모두 DB 계정은 `king` 통일. --- ## 서버 배포 절차 (`/opt/dbx-corm`) ### 1. 코드 받기 ```bash sudo mkdir -p /opt/dbx-corm sudo chown $USER:$USER /opt/dbx-corm cd /opt git clone https://gitea.no1king.freeddns.org/king/dbx-corm.git cd /opt/dbx-corm ``` ### 2. 환경변수 설정 ```bash cp .env.example .env nano .env ``` `.env` 파일에 다음을 채워주세요: - `POSTGRES_PASSWORD` (DB 비밀번호) - `POSTGRES_HOST` (PostgreSQL 컨테이너 이름. 아래로 확인) - `NAVER_CLIENT_ID`, `NAVER_CLIENT_SECRET` - `CAFE24_CLIENT_ID`, `CAFE24_CLIENT_SECRET`, `CAFE24_REDIRECT_URI` PostgreSQL 컨테이너 이름 확인: ```bash docker ps --filter "ancestor=postgres" --format "{{.Names}}" ``` ### 3. PostgreSQL 네트워크 확인 / 수정 ```bash docker network ls | grep postgres ``` `docker-compose.yml`의 `networks.postgres-net.name` 값을 실제 네트워크 이름으로 수정. ### 4. 민감 파일 업로드 (Git에 없음) 로컬 PC에서 서버로 직접 복사: ```bash # 로컬 PC에서 실행 scp cafe24_tokens.json king@<서버>:/opt/dbx-corm/ scp manual-ordering.json king@<서버>:/opt/dbx-corm/ ``` ### 5. 빌드 및 실행 ```bash cd /opt/dbx-corm docker compose up -d --build ``` ### 6. 상태 확인 ```bash docker compose ps docker compose logs -f ``` --- ## 업데이트 (Git pull 후 재배포) ```bash cd /opt/dbx-corm git pull docker compose up -d --build ``` --- ## 접속 - 컨테이너 포트: `8002` - 호스트 포트: `8002` - 헬스체크: `http://<서버>:8002/` Nginx Proxy Manager 등을 사용한다면 `<서버>:8002`로 프록시 설정. --- ## 로컬 개발 (Windows) ```cmd python -m venv venv venv\Scripts\activate pip install -r requirements.txt copy .env.example .env :: .env 편집 python main.py ``` --- ## Gitea 푸시 (Windows) 리포지토리에 변경사항을 올릴 때: ```cmd push_to_gitea.bat ``` 스크립트가 변경사항 확인 → 커밋 메시지 입력 → push 자동 수행. --- ## 주의사항 - `.env`, `cafe24_tokens.json`, `manual-ordering.json` 등 **민감 파일은 절대 Git에 올리지 마세요**. - `.gitignore`에 자동 제외 설정되어 있습니다. - DB 이름은 반드시 `orderlist_db`를 사용 (예전 이름 `orderlist_app` 사용 금지).