From 11fe30a68351305f845ca643da260a036c73ac8a Mon Sep 17 00:00:00 2001 From: choibk Date: Sun, 25 Jan 2026 00:11:19 +0900 Subject: [PATCH] =?UTF-8?q?=EC=9A=B4=EC=98=81=20=EA=B0=80=EC=9D=B4?= =?UTF-8?q?=EB=93=9C=20=EB=8C=80=EA=B0=9C=ED=8E=B8:=20=EC=8B=A4=EC=B8=A1?= =?UTF-8?q?=20DB=EB=AA=85(sokuree=5Fplatform=5Fprod)=20=EB=B0=98=EC=98=81?= =?UTF-8?q?=20=EB=B0=8F=20=EC=88=98=EB=8F=99=20=EC=97=85=EB=8D=B0=EC=9D=B4?= =?UTF-8?q?=ED=8A=B8=20=EC=A0=88=EC=B0=A8=20=EB=82=B4=20=EB=B0=B1=EC=97=85?= =?UTF-8?q?/=EB=B3=B5=EA=B5=AC=20=EB=8B=A8=EA=B3=84=20=ED=86=B5=ED=95=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/git 운영 규칙.md | 112 +++++++++++++++++++++--------------------- 1 file changed, 55 insertions(+), 57 deletions(-) diff --git a/docs/git 운영 규칙.md b/docs/git 운영 규칙.md index 5a62028..519279f 100644 --- a/docs/git 운영 규칙.md +++ b/docs/git 운영 규칙.md @@ -56,33 +56,60 @@ git push origin v0.3.5 --- -## 3. 운영 서버 수동 업데이트 방법 (Production Server) +## 3. 운영 서버 수동 업데이트 및 백업 절차 (Manual Update Full Process) -웹 UI 업데이트가 실패하거나 SSH를 통해 직접 서버에서 제어해야 할 경우 사용합니다. -* **서비스 경로**: `/volume1/web/smartims` (리눅스 운영 환경 기반) +웹 UI 업데이트가 실패하거나 SSH 터미널에서 직접 제어해야 할 경우 사용합니다. 모든 명령어는 **운영 서버(시놀로지)** 환경 기준입니다. +* **서비스 경로**: `/volume1/web/smartims` +* **백업 경로**: `/volume1/backup/smart_ims` -### STEP 1: 원격 정보 확인 및 체크아웃 +--- + +### STEP 1: [필수] 안전을 위한 사전 데이터 백업 +업데이트 전, 현재 상태를 보관하기 위해 이미지와 DB를 백업 폴더에 저장합니다. + +#### 1-1. 업로드 이미지 압축 백업 ```bash -# [위치: /volume1/web/smartims (루트)] +# [위치: /volume1/web/smartims] +tar -czvf /volume1/backup/smart_ims/backup_images_$(date +%Y%m%d).tar.gz server/uploads/ +``` -# 1. 원격 저장소의 최신 태그 목록 확인 (무엇이 최신인지 먼저 확인) +#### 1-2. 데이터베이스(DB) 덤프 백업 +```bash +# [위치: /volume1/web/smartims] +# 시놀로지 MariaDB 10 전용 계정(choibk) 및 포트(3307) 사용 +/usr/local/mariadb10/bin/mysqldump -u choibk -p --port 3307 sokuree_platform_prod > /volume1/backup/smart_ims/backup_db_$(date +%Y%m%d).sql +``` + +--- + +### STEP 2: 원격 정보 확인 및 체크아웃 +최신 소스를 가져오고 특정 버전으로 전환합니다. + +```bash +# [위치: /volume1/web/smartims] + +# 1. 원격 저장소의 최신 태그 목록 확인 git ls-remote --tags origin -# 2. 태그 정보 강제 업데이트 (원격 저장소와 완벽 동기화) +# 2. 태그 정보 강제 업데이트 (원격 정보를 로컬로 완벽 동기화) git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags -# 3. 대상 버전으로 강제 체크아웃 +# 3. 대상 버전(태그)으로 강제 체크아웃 git checkout -f v0.3.5 ``` -### STEP 2: 프론트엔드 빌드 및 의존성 업데이트 +--- + +### STEP 3: 프론트엔드 빌드 및 의존성 업데이트 ```bash -# [위치: /volume1/web/smartims (루트)] +# [위치: /volume1/web/smartims] npm install npm run build ``` -### STEP 3: 백엔드 반영 및 서비스 재시작 +--- + +### STEP 4: 백엔드 반영 및 서비스 재시작 ```bash # [위치: /volume1/web/smartims/server] cd server @@ -92,6 +119,23 @@ pm2 reload smartims-api --- +### STEP 5: [비상시] 데이터 복구 절차 (Restore) +업데이트 중 문제가 발생하여 이전 상태로 되돌려야 할 경우에만 수행합니다. + +#### 5-1. 이미지 복구 (압축 해제) +```bash +# [위치: /volume1/web/smartims] +tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./ +``` + +#### 5-2. 데이터베이스(DB) 복원 +```bash +# [위치: /volume1/web/smartims] +/usr/local/mariadb10/bin/mysql -u choibk -p --port 3307 sokuree_platform_prod < /volume1/backup/smart_ims/backup_db_[날짜].sql +``` + +--- + ## 4. 유용한 Git 명령어 레퍼런스 * **태그 목록 확인**: `git tag -l` (모든 환경의 루트 폴더) @@ -105,52 +149,6 @@ pm2 reload smartims-api --- -## 5. 데이터 백업 및 복구 절차 (시놀로지 전용) - -자동 업데이트는 데이터를 안전하게 유지하지만, 만약의 사태나 서버 이전을 위해 현재 운영 중인 백업 폴더(`/volume1/backup/smart_ims`)를 활용한 절차를 안내합니다. - -### ✅ 자동 업데이트 시 데이터 안전성 -* **파일 안전**: 시스템 관리 메뉴를 통한 **[자동 업데이트]** 실행 시, `server/uploads` 폴더는 Git 추적 제외 대상이므로 **삭제되거나 초기화되지 않고 그대로 유지**됩니다. -* **DB 안전**: 업데이트 시 기존 데이터베이스의 테이블 구조만 업데이트하며, 이미 등록된 자산 데이터는 보존됩니다. - ---- - -### 📦 데이터 백업 절차 (Backup) -운영 서버 SSH 터미널에서 실행하여 지정된 백업 폴더에 저장합니다. - -#### 1단계: 업로드 이미지 백업 -```bash -# [위치: /volume1/web/smartims] -tar -czvf /volume1/backup/smart_ims/backup_images_$(date +%Y%m%d).tar.gz server/uploads/ -``` - -#### 2단계: 데이터베이스(DB) 백업 -시놀로지 MariaDB 10은 보안상 `root` 접근보다 **서비스 전용 계정** 사용을 권장하며, 기본 포트가 `3307`인 경우가 많습니다. -```bash -# [위치: /volume1/web/smartims] -# .env에 등록된 사용자(choibk)와 포트(3307)를 명시하여 백업 -/usr/local/mariadb10/bin/mysqldump -u choibk -p --port 3307 smartims > /volume1/backup/smart_ims/backup_db_$(date +%Y%m%d).sql -``` - ---- - -### 🔄 데이터 복구 절차 (Restore / Recovery) -서버 재설치 등으로 데이터 복구가 필요한 경우 아래 순서대로 실행합니다. - -#### 1단계: 이미지 복구 (압축 해제) -```bash -# [위치: /volume1/web/smartims] -tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./ -``` - -#### 2단계: 데이터베이스(DB) 복원 -```bash -# [위치: /volume1/web/smartims] -/usr/local/mariadb10/bin/mysql -u choibk -p --port 3307 smartims < /volume1/backup/smart_ims/backup_db_[날짜].sql -``` - ---- - ## 💡 최종 주의사항 1. **DB 계정 확인**: 위 명령어의 `-u choibk`는 본 시스템의 데이터베이스 사용자명입니다. 비밀번호 요청 시 `.env` 파일에 기록된 `DB_PASSWORD`를 입력하십시오. 2. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다.