운영 가이드 강화: 안전 중심의 통합 공정(Checklist) 구조로 개편 및 경고 문구 강화
This commit is contained in:
parent
11fe30a683
commit
ff45871d22
@ -56,62 +56,63 @@ git push origin v0.3.5
|
||||
|
||||
---
|
||||
|
||||
## 3. 운영 서버 수동 업데이트 및 백업 절차 (Manual Update Full Process)
|
||||
## 3. 운영 서버 수동 업데이트 통합 공정 [작업 전 필수 확인]
|
||||
|
||||
웹 UI 업데이트가 실패하거나 SSH 터미널에서 직접 제어해야 할 경우 사용합니다. 모든 명령어는 **운영 서버(시놀로지)** 환경 기준입니다.
|
||||
* **서비스 경로**: `/volume1/web/smartims`
|
||||
* **백업 경로**: `/volume1/backup/smart_ims`
|
||||
운영 환경에서 작업을 수행할 때는 **반드시 아래 순서를 1번부터 차례대로 수행**하십시오. 단계를 건너뛸 경우 데이터 유실 시 복구가 불가능합니다.
|
||||
|
||||
---
|
||||
|
||||
### STEP 1: [필수] 안전을 위한 사전 데이터 백업
|
||||
업데이트 전, 현재 상태를 보관하기 위해 이미지와 DB를 백업 폴더에 저장합니다.
|
||||
### 🚨 [STEP 1] 데이터 백업 (무조건 수행 - 예외 없음)
|
||||
업데이트 명령을 입력하기 전, 현재의 이미지 파일과 데이터베이스를 안전 경로(`/volume1/backup/smart_ims`)로 격리합니다.
|
||||
|
||||
#### 1-1. 업로드 이미지 압축 백업
|
||||
#### 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-2. 데이터베이스(DB) 덤프 백업
|
||||
#### 1-2. 데이터베이스(DB) 전체 백업
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims]
|
||||
# 시놀로지 MariaDB 10 전용 계정(choibk) 및 포트(3307) 사용
|
||||
# [실행 위치: /volume1/web/smartims]
|
||||
# DB명: sokuree_platform_prod, 포트: 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
|
||||
```
|
||||
> **주의**: 비밀번호 요청 시 `.env` 파일의 `DB_PASSWORD`(`^Ocean...`)를 입력하세요.
|
||||
|
||||
---
|
||||
|
||||
### STEP 2: 원격 정보 확인 및 체크아웃
|
||||
최신 소스를 가져오고 특정 버전으로 전환합니다.
|
||||
### 🚀 [STEP 2] 버전 동기화 및 코드 반영
|
||||
백업이 완료된 것이 확인된 경우에만 아래 명령어를 실행하여 소스를 업데이트합니다.
|
||||
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims]
|
||||
# [실행 위치: /volume1/web/smartims]
|
||||
|
||||
# 1. 원격 저장소의 최신 태그 목록 확인
|
||||
# 1. 원격 저장소의 태그 목록 확인 (배포된 최신 버전이 무엇인지 체크)
|
||||
git ls-remote --tags origin
|
||||
|
||||
# 2. 태그 정보 강제 업데이트 (원격 정보를 로컬로 완벽 동기화)
|
||||
# 2. 로컬 태그 정보를 원격과 완벽히 일치 (강제 동기화)
|
||||
git fetch origin +refs/tags/*:refs/tags/* --force --prune --prune-tags
|
||||
|
||||
# 3. 대상 버전(태그)으로 강제 체크아웃
|
||||
# 3. 목표 버전으로 소스 코드 강제 전환 (예: v0.3.5)
|
||||
# [주의] 이 명령 실행 시 추적되지 않은 소스 수정사항은 사라집니다.
|
||||
git checkout -f v0.3.5
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### STEP 3: 프론트엔드 빌드 및 의존성 업데이트
|
||||
### 🏗️ [STEP 3] 시스템 빌드 및 서비스 재시작
|
||||
코드가 반영되었다면 변경된 내용을 적용하기 위해 빌드와 프로세스를 갱신합니다.
|
||||
|
||||
#### 3-1. 프론트엔드 빌드
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims]
|
||||
npm install
|
||||
npm run build
|
||||
# [실행 위치: /volume1/web/smartims]
|
||||
npm install && npm run build
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### STEP 4: 백엔드 반영 및 서비스 재시작
|
||||
#### 3-2. 백엔드 반영 및 PM2 재시작
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims/server]
|
||||
# [실행 위치: /volume1/web/smartims/server]
|
||||
cd server
|
||||
npm install
|
||||
pm2 reload smartims-api
|
||||
@ -119,18 +120,19 @@ pm2 reload smartims-api
|
||||
|
||||
---
|
||||
|
||||
### STEP 5: [비상시] 데이터 복구 절차 (Restore)
|
||||
업데이트 중 문제가 발생하여 이전 상태로 되돌려야 할 경우에만 수행합니다.
|
||||
### 🆘 [STEP 4] 비상시 복구 절차 (Emergency Restore)
|
||||
만약 업데이트 후 시스템이 작동하지 않거나 데이터가 보이지 않을 경우에만 수행합니다.
|
||||
|
||||
#### 5-1. 이미지 복구 (압축 해제)
|
||||
#### 4-1. 이미지 파일 복원
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims]
|
||||
# [실행 위치: /volume1/web/smartims]
|
||||
# 작업 당일 생성한 압축파일 이름을 확인하여 입력하세요.
|
||||
tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./
|
||||
```
|
||||
|
||||
#### 5-2. 데이터베이스(DB) 복원
|
||||
#### 4-2. 데이터베이스(DB) 복원
|
||||
```bash
|
||||
# [위치: /volume1/web/smartims]
|
||||
# [실행 위치: /volume1/web/smartims]
|
||||
/usr/local/mariadb10/bin/mysql -u choibk -p --port 3307 sokuree_platform_prod < /volume1/backup/smart_ims/backup_db_[날짜].sql
|
||||
```
|
||||
|
||||
@ -149,9 +151,8 @@ tar -xzvf /volume1/backup/smart_ims/backup_images_[날짜].tar.gz -C ./
|
||||
|
||||
---
|
||||
|
||||
## 💡 최종 주의사항
|
||||
1. **DB 계정 확인**: 위 명령어의 `-u choibk`는 본 시스템의 데이터베이스 사용자명입니다. 비밀번호 요청 시 `.env` 파일에 기록된 `DB_PASSWORD`를 입력하십시오.
|
||||
2. **실행 위치 확인**: 특히 `pm2` 명령어나 `server` 관련 설정은 반드시 `server` 폴더 내에서 실행하거나 경로를 정확히 지정해야 합니다.
|
||||
3. **경로 이동 주의**: `cd server`를 통해 폴더를 이동하여 작업을 마친 후에는 반드시 `cd ..`를 통해 다시 루트 폴더로 복귀하여 다음 작업에 혼선이 없도록 합니다.
|
||||
4. **권한 관리**: 운영 서버에서는 반드시 서비스 실행 권한을 가진 계정으로 명령어를 실행해야 `PM2` 프로세스 관리에 문제가 생기지 않습니다.
|
||||
5. **수동 설치 주의**: `git clone`을 새로 받아 설치할 때는 기존 `uploads` 폴더가 포함되어 있지 않으므로 반드시 위 **복구 절차**를 통해 데이터를 복구해야 자산 이미지가 나타납니다.
|
||||
## 💡 최종 주의사항 (Must Read)
|
||||
1. **DB 계정 확인**: `-u choibk` 계정은 본 시스템 전용 계정입니다. 운영 서버 접속 시 `root` 권한이더라도 DB 작업은 `choibk`로 수행해야 권한 꼬임이 없습니다.
|
||||
2. **경로 이동 주의**: `cd server` 이동 후 빌드가 끝나면 `cd ..`를 통해 반드시 루트로 돌아오십시오.
|
||||
3. **수동 설치 주의**: `git clone`을 새로 받아 설치할 때는 기존 `uploads` 폴더가 포함되어 있지 않으므로 반드시 위 **STEP 4-1 복구 절차**를 통해 이미지를 채워넣어야 합니다.
|
||||
4. **자동 업데이트 정책**: 시스템 관리 메뉴의 **[자동 업데이트]**는 내부적으로 소스 코드만 갱신하며 `uploads` 폴더는 건드리지 않습니다. 따라서 자동 업데이트 시에는 별도의 이미지 복구가 필요 없습니다.
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user