feat: harden auth ops and deployment baseline

This commit is contained in:
2026-06-27 10:53:53 +09:00
parent a6ca30eec8
commit 28060b71be
41 changed files with 714 additions and 208 deletions
+17 -26
View File
@@ -1,7 +1,7 @@
# TaxBaik 프로덕션 배포 체크리스트
**작성일**: 2026-06-26
**상태**: 배포 준비 완료
**상태**: 운영 기준 정비 중
**대상**: 178.104.200.7 (Ubuntu 26.04)
---
@@ -11,7 +11,7 @@
### 1. 코드 검증
- [ ] `dotnet build TaxBaik.sln -c Release` 성공
- [ ] 모든 컴파일 오류 0개
- [ ] 경고 무시 (NuGet 보안 정보만)
- [ ] 경고 0개 유지
### 2. Git 상태 확인
- [ ] 모든 변경사항 커밋됨
@@ -20,12 +20,10 @@
### 3. 발행 검증
```bash
dotnet publish TaxBaik.Web -c Release -o ./publish/web
dotnet publish TaxBaik.Admin -c Release -o ./publish/admin
dotnet publish TaxBaik.Web -c Release -o ./publish
# 확인
ls -lh ./publish/web/TaxBaik.Web.dll
ls -lh ./publish/admin/TaxBaik.Admin.dll
ls -lh ./publish/TaxBaik.Web.dll
```
---
@@ -47,7 +45,7 @@ ssh kjh2064@178.104.200.7 'bash ~/SERVER_SETUP.sh'
# 3. 배포 디렉토리 생성 (자동으로 진행됨)
# ~/deployments/
# ~/taxbaik_active
# ~/taxbaik_admin_active
# ~/taxbaik_active
```
### 2단계: 첫 배포 (수동)
@@ -61,18 +59,14 @@ export DEPLOY_USER="kjh2064"
export DEPLOY_HOST="178.104.200.7"
# 배포
rsync -avz --delete ./publish/web/ \
rsync -avz --delete ./publish/ \
$DEPLOY_USER@$DEPLOY_HOST:~/deployments/taxbaik_${TIMESTAMP}/
rsync -avz --delete ./publish/admin/ \
$DEPLOY_USER@$DEPLOY_HOST:~/deployments/taxbaik_admin_${TIMESTAMP}/
# 심링크 변경 및 시작
ssh $DEPLOY_USER@$DEPLOY_HOST << EOF
ln -sfn ~/deployments/taxbaik_${TIMESTAMP} ~/taxbaik_active
ln -sfn ~/deployments/taxbaik_admin_${TIMESTAMP} ~/taxbaik_admin_active
sudo systemctl start taxbaik taxbaik-admin
sudo systemctl status taxbaik taxbaik-admin
sudo systemctl start taxbaik
sudo systemctl status taxbaik
EOF
```
@@ -95,13 +89,13 @@ EOF
ssh kjh2064@178.104.200.7
# 서비스 상태
sudo systemctl status taxbaik taxbaik-admin
sudo systemctl status taxbaik
# 프로세스 확인
ps aux | grep TaxBaik
# 포트 확인
netstat -tlnp | grep -E '5001|5002'
netstat -tlnp | grep -E '5001'
```
### 2. 엔드포인트 테스트
@@ -145,9 +139,6 @@ SELECT COUNT(*) FROM categories;
# 웹 서비스
journalctl -u taxbaik -n 50
# 관리자 서비스
journalctl -u taxbaik-admin -n 50
# Nginx
sudo tail -f /var/log/nginx/access.log | grep taxbaik
```
@@ -197,7 +188,7 @@ curl -I -H "Accept-Encoding: gzip" http://178.104.200.7/taxbaik/ | grep -i encod
- [ ] 로그인 폼 표시
- [ ] 초기 계정 로그인
- username: `admin`
- password: `admin123`
- password: `<TAXBAIK_ADMIN_TEST_PASSWORD>`
#### 대시보드
- [ ] 로그인 후 대시보드 로드
@@ -242,8 +233,8 @@ curl -I -H "Accept-Encoding: gzip" http://178.104.200.7/taxbaik/ | grep -i encod
# 터미널 1: 웹 서비스 로그
ssh kjh2064@178.104.200.7 'journalctl -u taxbaik -f'
# 터미널 2: 관리자 서비스 로그
ssh kjh2064@178.104.200.7 'journalctl -u taxbaik-admin -f'
# 터미널 2: 통합 서비스 로그
ssh kjh2064@178.104.200.7 'journalctl -u taxbaik -f'
# 터미널 3: Nginx 로그
ssh kjh2064@178.104.200.7 'sudo tail -f /var/log/nginx/access.log | grep taxbaik'
@@ -261,7 +252,7 @@ ssh kjh2064@178.104.200.7 'watch -n 1 "ps aux | grep TaxBaik"'
# 내용:
#!/bin/bash
curl -f http://127.0.0.1:5001/taxbaik || systemctl restart taxbaik
curl -f http://127.0.0.1:5002/taxbaik/admin || systemctl restart taxbaik-admin
curl -f http://127.0.0.1:5001/taxbaik/admin/login || systemctl restart taxbaik
```
---
@@ -279,8 +270,8 @@ git push origin master
# 2. Gitea Actions가 자동으로 배포
# 또는 수동 배포:
TIMESTAMP=$(date +%Y%m%d_%H%M%S)
dotnet publish TaxBaik.Web -c Release -o ./publish/web
rsync -avz ./publish/web/ kjh2064@178.104.200.7:~/deployments/taxbaik_${TIMESTAMP}/
dotnet publish TaxBaik.Web -c Release -o ./publish
rsync -avz ./publish/ kjh2064@178.104.200.7:~/deployments/taxbaik_${TIMESTAMP}/
ssh kjh2064@178.104.200.7 "ln -sfn ~/deployments/taxbaik_${TIMESTAMP} ~/taxbaik_active && sudo systemctl restart taxbaik"
```
@@ -306,7 +297,7 @@ EOF
- [ ] 모든 엔드포인트 HTTP 200 응답
- [ ] 데이터베이스 마이그레이션 완료 (schema_migrations 테이블 확인)
- [ ] 초기 5개 블로그 포스트 DB에 존재
- [ ] 로그인 기능 정상 (admin/admin123)
- [ ] 로그인 기능 정상 (admin/<TAXBAIK_ADMIN_TEST_PASSWORD>)
- [ ] 문의 폼 제출 → DB 저장 확인
- [ ] Nginx 프록시 정상 작동
- [ ] 응답 gzip 압축 확인