From b0eff846de6d7c983b5d349e447209e9eda9811b Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 19:54:17 +0900 Subject: [PATCH 01/13] Add .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 47 +++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 .gitea/workflows/deploy.yml diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml new file mode 100644 index 0000000..5e17a9c --- /dev/null +++ b/.gitea/workflows/deploy.yml @@ -0,0 +1,47 @@ +name: Deploy VConnect API +on: + push: + branches: + - main + workflow_dispatch: # 수동 실행 가능 + +jobs: + test: + name: Test + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + pip install --upgrade pip + pip install -r requirements.txt + + - name: Run tests + run: | + echo "테스트 실행 중..." + # pytest가 있다면: pytest + python -m pytest || echo "테스트 스킵" + + deploy: + name: Deploy to Server + runs-on: ubuntu-latest + needs: test # test 성공 후 실행 + if: github.ref == 'refs/heads/main' + steps: + - name: Deploy via SSH + run: | + echo "배포 시작..." + # SSH 설정 후 주석 해제: + # mkdir -p ~/.ssh + # echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + # chmod 600 ~/.ssh/id_rsa + # ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts + # ssh user@192.168.0.97 "cd /path/to/vconnect-api && git pull && systemctl restart vconnect-api" + echo "배포 완료!" \ No newline at end of file From 62f9c629286f6f1ecfe397e6d4e326bda5314cf4 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 20:46:26 +0900 Subject: [PATCH 02/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 44 ++++++++++--------------------------- 1 file changed, 12 insertions(+), 32 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 5e17a9c..a31980c 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -3,45 +3,25 @@ on: push: branches: - main - workflow_dispatch: # 수동 실행 가능 + workflow_dispatch: jobs: test: - name: Test + name: Test Build runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - - - name: Install dependencies + - name: List files run: | - pip install --upgrade pip - pip install -r requirements.txt - - - name: Run tests + echo "=== 파일 목록 ===" + ls -la + + - name: Check Python run: | - echo "테스트 실행 중..." - # pytest가 있다면: pytest - python -m pytest || echo "테스트 스킵" - - deploy: - name: Deploy to Server - runs-on: ubuntu-latest - needs: test # test 성공 후 실행 - if: github.ref == 'refs/heads/main' - steps: - - name: Deploy via SSH - run: | - echo "배포 시작..." - # SSH 설정 후 주석 해제: - # mkdir -p ~/.ssh - # echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa - # chmod 600 ~/.ssh/id_rsa - # ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts - # ssh user@192.168.0.97 "cd /path/to/vconnect-api && git pull && systemctl restart vconnect-api" - echo "배포 완료!" \ No newline at end of file + echo "=== Python 버전 ===" + python3 --version + + - name: Success + run: echo "CI/CD 테스트 성공!" \ No newline at end of file From 2dfa09a7753a60cfd698323bec82fe5f899fd1c3 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 20:52:41 +0900 Subject: [PATCH 03/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 60 +++++++++++++++++++++++++++++++------ 1 file changed, 51 insertions(+), 9 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a31980c..7882954 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -13,15 +13,57 @@ jobs: - name: Checkout code uses: actions/checkout@v3 - - name: List files + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.10' + + - name: Install dependencies run: | - echo "=== 파일 목록 ===" - ls -la - - - name: Check Python + pip install --upgrade pip + if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + + - name: Run basic tests run: | - echo "=== Python 버전 ===" - python3 --version + echo "✅ 코드 체크아웃 성공" + echo "✅ 의존성 설치 성공" + + deploy: + name: Deploy to Server + runs-on: ubuntu-latest + needs: test + if: github.ref == 'refs/heads/main' + steps: + - name: Deploy via SSH + run: | + # SSH 키 설정 + mkdir -p ~/.ssh + echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa + chmod 600 ~/.ssh/id_rsa + ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts - - name: Success - run: echo "CI/CD 테스트 성공!" \ No newline at end of file + # 서버에 배포 + ssh kdesk84@192.168.0.97 << 'EOF' + echo "=== VConnect API 배포 시작 ===" + cd /data/vconnect-api + + # Git Pull + echo "📦 최신 코드 가져오기..." + git pull origin main + + # 가상환경에서 의존성 업데이트 + echo "📦 의존성 업데이트..." + source venv/bin/activate + pip install -r requirements.txt + + # 서비스 재시작 + echo "🔄 서비스 재시작..." + sudo systemctl restart vconnect-api + + # 상태 확인 + echo "✅ 배포 완료! 서비스 상태:" + sudo systemctl status vconnect-api --no-pager -l + EOF + + - name: Deployment Complete + run: echo "🎉 VConnect API 배포 완료!" \ No newline at end of file From bb085b44ba3295bf89a6f1123537e16cae31b907 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:08:00 +0900 Subject: [PATCH 04/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7882954..a44c61b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -9,20 +9,18 @@ jobs: test: name: Test Build runs-on: ubuntu-latest + container: python:3.10-slim steps: - name: Checkout code uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.10' - + - name: Install dependencies run: | + python -V + pip -V pip install --upgrade pip if [ -f requirements.txt ]; then pip install -r requirements.txt; fi - + - name: Run basic tests run: | echo "✅ 코드 체크아웃 성공" From 5cd1d45da3998e984784926796c5f19b1e72666b Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:09:43 +0900 Subject: [PATCH 05/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a44c61b..a55534e 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -9,17 +9,22 @@ jobs: test: name: Test Build runs-on: ubuntu-latest - container: python:3.10-slim + container: node:18-bullseye steps: - name: Checkout code uses: actions/checkout@v3 + - name: Install Python + run: | + apt-get update + apt-get install -y python3 python3-pip + python3 --version + pip3 --version + - name: Install dependencies run: | - python -V - pip -V - pip install --upgrade pip - if [ -f requirements.txt ]; then pip install -r requirements.txt; fi + pip3 install --upgrade pip + if [ -f requirements.txt ]; then pip3 install -r requirements.txt; fi - name: Run basic tests run: | From afb68c9e5eecd3a727f727b5d15fab7f949f7e58 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:21:48 +0900 Subject: [PATCH 06/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index a55534e..63e0bf2 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -13,6 +13,10 @@ jobs: steps: - name: Checkout code uses: actions/checkout@v3 + with: + fetch-depth: 1 + submodules: false + lfs: false - name: Install Python run: | From 9412f72cb36119f064619a6fca8a4f1a0d13d5e4 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:28:57 +0900 Subject: [PATCH 07/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 57 ++++++++++++++++++++++++------------- 1 file changed, 37 insertions(+), 20 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 63e0bf2..f76d59d 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -1,4 +1,5 @@ name: Deploy VConnect API + on: push: branches: @@ -9,8 +10,12 @@ jobs: test: name: Test Build runs-on: ubuntu-latest + + # Node 기반 컨테이너 (checkout 액션 필수) container: node:18-bullseye + steps: + # 1️⃣ Checkout (최소 옵션으로 최적화) - name: Checkout code uses: actions/checkout@v3 with: @@ -18,6 +23,7 @@ jobs: submodules: false lfs: false + # 2️⃣ Python 설치 - name: Install Python run: | apt-get update @@ -25,52 +31,63 @@ jobs: python3 --version pip3 --version + # 3️⃣ 의존성 설치 - name: Install dependencies run: | pip3 install --upgrade pip - if [ -f requirements.txt ]; then pip3 install -r requirements.txt; fi + if [ -f requirements.txt ]; then + pip3 install -r requirements.txt + fi + # 4️⃣ 기본 테스트 - name: Run basic tests run: | echo "✅ 코드 체크아웃 성공" - echo "✅ 의존성 설치 성공" + echo "✅ Python 환경 준비 완료" + echo "✅ 의존성 설치 완료" deploy: name: Deploy to Server runs-on: ubuntu-latest + needs: test if: github.ref == 'refs/heads/main' + steps: - name: Deploy via SSH run: | - # SSH 키 설정 + set -e + + echo "🔐 SSH 설정 중..." mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts - - # 서버에 배포 + + echo "🚀 서버 배포 시작" ssh kdesk84@192.168.0.97 << 'EOF' - echo "=== VConnect API 배포 시작 ===" + set -e + + echo "📂 프로젝트 디렉토리 이동" cd /data/vconnect-api - - # Git Pull - echo "📦 최신 코드 가져오기..." + + echo "📦 최신 코드 가져오기" git pull origin main - - # 가상환경에서 의존성 업데이트 - echo "📦 의존성 업데이트..." + + echo "🐍 가상환경 활성화" source venv/bin/activate + + echo "📦 의존성 업데이트" pip install -r requirements.txt - - # 서비스 재시작 - echo "🔄 서비스 재시작..." + + echo "🔄 서비스 재시작" sudo systemctl restart vconnect-api - - # 상태 확인 - echo "✅ 배포 완료! 서비스 상태:" + + echo "📋 서비스 상태 확인" sudo systemctl status vconnect-api --no-pager -l + + echo "✅ 배포 완료" EOF - + - name: Deployment Complete - run: echo "🎉 VConnect API 배포 완료!" \ No newline at end of file + run: echo "🎉 VConnect API 배포 완료!" From ad18133ab2f9260166e2e8dfca453e6328be9abb Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:38:53 +0900 Subject: [PATCH 08/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 43 ++++++++++++++++++------------------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index f76d59d..e21b8e1 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -11,17 +11,16 @@ jobs: name: Test Build runs-on: ubuntu-latest - # Node 기반 컨테이너 (checkout 액션 필수) + # Node 포함 컨테이너 (act_runner + Gitea Actions 필수) container: node:18-bullseye steps: - # 1️⃣ Checkout (최소 옵션으로 최적화) - - name: Checkout code - uses: actions/checkout@v3 - with: - fetch-depth: 1 - submodules: false - lfs: false + # 1️⃣ 내부 네트워크로 직접 Clone (checkout 액션 제거) + - name: Checkout repository (internal) + run: | + echo "📥 Internal git clone start" + git clone --depth 1 http://server:3000/Kim.KANGHEE/vconnect-api.git . + echo "📥 Clone done" # 2️⃣ Python 설치 - name: Install Python @@ -39,12 +38,12 @@ jobs: pip3 install -r requirements.txt fi - # 4️⃣ 기본 테스트 + # 4️⃣ 기본 테스트 (지금은 echo, 이후 pytest 등으로 교체 가능) - name: Run basic tests run: | - echo "✅ 코드 체크아웃 성공" - echo "✅ Python 환경 준비 완료" - echo "✅ 의존성 설치 완료" + echo "✅ Code checkout success" + echo "✅ Python ready" + echo "✅ Dependencies installed" deploy: name: Deploy to Server @@ -58,36 +57,36 @@ jobs: run: | set -e - echo "🔐 SSH 설정 중..." + echo "🔐 SSH key setup" mkdir -p ~/.ssh echo "${{ secrets.SSH_PRIVATE_KEY }}" > ~/.ssh/id_rsa chmod 600 ~/.ssh/id_rsa ssh-keyscan -H 192.168.0.97 >> ~/.ssh/known_hosts - echo "🚀 서버 배포 시작" + echo "🚀 Deploy start" ssh kdesk84@192.168.0.97 << 'EOF' set -e - echo "📂 프로젝트 디렉토리 이동" + echo "📂 Move to project directory" cd /data/vconnect-api - echo "📦 최신 코드 가져오기" + echo "📦 Git pull" git pull origin main - echo "🐍 가상환경 활성화" + echo "🐍 Activate virtualenv" source venv/bin/activate - echo "📦 의존성 업데이트" + echo "📦 Install dependencies" pip install -r requirements.txt - echo "🔄 서비스 재시작" + echo "🔄 Restart service" sudo systemctl restart vconnect-api - echo "📋 서비스 상태 확인" + echo "📋 Service status" sudo systemctl status vconnect-api --no-pager -l - echo "✅ 배포 완료" + echo "✅ Deploy finished" EOF - name: Deployment Complete - run: echo "🎉 VConnect API 배포 완료!" + run: echo "🎉 VConnect API deployment completed!" \ No newline at end of file From fb1cb27d6105adf76208cfeb50b580e9f8236e3a Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:43:47 +0900 Subject: [PATCH 09/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index e21b8e1..4fec74e 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout repository (internal) run: | echo "📥 Internal git clone start" - git clone --depth 1 http://server:3000/Kim.KANGHEE/vconnect-api.git . + git clone --depth 1 http://gitea:3000/Kim.KANGHEE/vconnect-api.git . echo "📥 Clone done" # 2️⃣ Python 설치 From 54d46e8c116aebbaa545e67049277cf3e2b73c76 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 22:54:26 +0900 Subject: [PATCH 10/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 4fec74e..7029da8 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout repository (internal) run: | echo "📥 Internal git clone start" - git clone --depth 1 http://gitea:3000/Kim.KANGHEE/vconnect-api.git . + git clone --depth 1 http://192.168.0.2:3000/Kim.KANGHEE/vconnect-api.git . echo "📥 Clone done" # 2️⃣ Python 설치 From 8b1495db28a6a2e4937f6e156e6eb1813b6f4ad1 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 23:00:35 +0900 Subject: [PATCH 11/13] Update .gitea/workflows/deploy.yml --- .gitea/workflows/deploy.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitea/workflows/deploy.yml b/.gitea/workflows/deploy.yml index 7029da8..71bd81b 100644 --- a/.gitea/workflows/deploy.yml +++ b/.gitea/workflows/deploy.yml @@ -19,7 +19,7 @@ jobs: - name: Checkout repository (internal) run: | echo "📥 Internal git clone start" - git clone --depth 1 http://192.168.0.2:3000/Kim.KANGHEE/vconnect-api.git . + git clone --depth 1 https://gitea.mouse84.com/Kim.KANGHEE/vconnect-api.git . echo "📥 Clone done" # 2️⃣ Python 설치 From 139fb68d02304c0a7da51ebd0747d198bb72de65 Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 23:09:17 +0900 Subject: [PATCH 12/13] Add .gitignore --- .gitignore | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..8932f3e --- /dev/null +++ b/.gitignore @@ -0,0 +1,32 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python + +# Virtual Environment +venv/ +env/ +ENV/ + +# Database +*.db +*.sqlite3 + +# IDE +.vscode/ +.idea/ +*.swp +*.swo + +# Environment variables +.env +.env.local + +# Logs +*.log + +# OS +.DS_Store +Thumbs.db \ No newline at end of file From 5504983536f8ea9d36ee88cd1f90373d33f36adf Mon Sep 17 00:00:00 2001 From: "Kim.KANGHEE" Date: Sat, 13 Dec 2025 23:17:55 +0900 Subject: [PATCH 13/13] Delete vconnect.db --- vconnect.db | Bin 40960 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 vconnect.db diff --git a/vconnect.db b/vconnect.db deleted file mode 100644 index c4e9febbc62a060a4100debfbae5f32c83a8fad9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40960 zcmeI*Z%^As90zclK!VdzI&GaFauQ4=>KYPhryXy^lWKOPSOc&?kGaJCm3=B-OO_QTnw)xZIt8&VBB87FIAE>{o2xBFApG zrTZk$-QjqidqfDwajWzzNxuf0Knt^j7xX(nRGw5^3S0;Y@!>Lmxn#FZ>)bxqJnuyF&)RLv@ifo!Jlkz+ zwmDRr+^#EfLm^GIyx&wvSuH7FlZiW$no5RtCaLR~>8JB?ac!CZcHE&OhZOpU9D6L= zym1WMO#hThB*f)q{#Vi0j~qIVa8yIZ`F`Anyj4-6Z!;;-xMj7W>?(Dl)*3`@Rw|#7 zq;Te0T?#U`t=F2=;<$$HXdSofkKM6rwOrrQPF&9?PvrXcW4WFxWYduY_xntYaSa=W z$Yrx>_MUA|(+%J5S!AnLt0=O{DvhqC`94NWM}INs7|5x}92GDetPRF4Y%Hle)5_(5TzW0bzAs z&^wu~$K&F?CEgyS0aerugH9R649khp6bM@wIZd+gbrALEPv#Qh(h~pMi(vZ0#;_2N zOnq2QQtx=;+pcMa^D#Q5^ssHcb=^LguddnAm{6pV?#yIaTSxc2=Wf>w151U%b>mQy z1@o-8HP6>+<_%ANQ0aC?>$=vF>)z;Txb%ErM5^CaN}YAg(JW+dn!aJ*HZ;2v4zWM{ z|D9~JaWO6O-XPh6MAWR7ZaYD7uAdj9XSbn#EZc&YBo*wJ{w7AxV6)>8TkyBK_5zZLP=1B92?w!!n$Jp$RbUZ$DoCzz#b*`67AsYThN=9P-htu7J z+;nu$*Btkm-40KjEM-SCGnr=B=KNxnqYrElfB*y_009U<00Izz00bZa0SNpXfy*ra z0Vl3q&aH|KL%WelxkF0aO)p4wh;kH(!qm`Vr;#q}mXZzSGUG$DJ2M>CxZk)Dj z=0&q36|A+!zTrGQEFNc`7xtcIcOQTE