GitHub Actions 파일 정리 및 README 간소화
All checks were successful
Deploy Nginx Config to Ubuntu Server / deploy (push) Successful in 1s

- .github/workflows/deploy.yml 삭제 (Gitea 사용)
- README.md 내용 간소화 및 구조 정리
- 파일 구조에 default.conf, static/ 추가

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-07-18 00:55:54 +09:00
parent 576dd5d424
commit 3f10734183
2 changed files with 24 additions and 141 deletions

View File

@ -1,76 +0,0 @@
# Ubuntu 서버 nginx 설정 자동 배포 워크플로우
#
# 성공 조건:
# - Ubuntu 서버 SSH 접속 가능
# - admin 사용자 sudo NOPASSWD 설정 완료
# - nginx 서비스 실행 중
#
# 실패 조건:
# - SSH 키 인증 실패
# - sudo 권한 없음
# - nginx 설정 문법 오류
# - 시스템 서비스 오류
#
# 주요 작업:
# 1. SSH 키 설정
# 2. 소스 파일 전송 (~/robeing-nginx)
# 3. nginx 설정 적용 (/etc/nginx/sites-available/default)
# 4. nginx 서비스 reload
# 5. Docker 컨테이너 정리
name: Deploy to Ubuntu Server
on:
push:
branches:
- main
jobs:
deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout source
uses: actions/checkout@v4
- name: Setup SSH key
run: |
mkdir -p ~/.ssh
echo "${{ secrets.NAS_SSH_KEY_ADMIN }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
- name: Deploy files via SCP
env:
HOST: ${{ secrets.NAS_HOST }}
PORT: ${{ secrets.NAS_PORT }}
USER: ${{ secrets.NAS_USER }}
run: |
# 기존 배포 파일 정리 및 디렉토리 준비
ssh -o StrictHostKeyChecking=no -p $PORT $USER@$HOST "rm -rf ~/robeing-nginx/* || true; mkdir -p ~/robeing-nginx"
# 소스 파일 전송 (.git 제외)
tar --exclude='.git' -czf - . | ssh -o StrictHostKeyChecking=no -p $PORT $USER@$HOST "cd ~/robeing-nginx && tar -xzf -"
- name: Apply nginx config via SSH
env:
HOST: ${{ secrets.NAS_HOST }}
PORT: ${{ secrets.NAS_PORT }}
USER: ${{ secrets.NAS_USER }}
run: |
ssh -o StrictHostKeyChecking=no -o RequestTTY=no -p $PORT $USER@$HOST << 'EOF'
cd ~/robeing-nginx
echo "📋 Applying nginx configuration..."
sudo -n /usr/bin/cp server-nginx-default /etc/nginx/sites-available/default
echo "🔍 Testing nginx configuration..."
sudo -n /usr/sbin/nginx -t
echo "🔄 Reloading nginx service..."
sudo -n /bin/systemctl reload nginx
echo "🧹 Cleaning up Docker containers..."
docker compose down || true
echo "✅ Deployment completed successfully!"
EOF

View File

@ -1,79 +1,38 @@
# Nginx Deploy - Robeing Project
# Nginx 배포 설정
Ubuntu 서버용 Nginx 리버스 프록시 배포 저장소입니다.
로빙 프로젝트의 웹 서버 설정을 관리하는 저장소입니다.
## 구조
## 개요
웹사이트 접속 시 올바른 서버로 연결해주는 리버스 프록시 설정을 관리합니다.
## 파일 구조
```
nginx-infra/
├── .gitea/workflows/deploy.yml # Gitea Actions 배포 스크립트
├── .github/workflows/deploy.yml # GitHub Actions 배포 스크립트 (legacy)
├── default.conf # Docker nginx 설정 (legacy)
├── server-nginx-default # 서버 nginx 설정 파일
├── docker-compose.yml # Docker Compose 정의 (cleanup용)
nginx-deploy/
├── .gitea/workflows/deploy.yml # 자동 배포 스크립트
├── server-nginx-default # 실제 서버 설정 파일
├── default.conf # Docker nginx 설정
├── docker-compose.yml # 테스트용 Docker 설정
├── static/ # 정적 파일
└── README.md # 이 파일
```
## 배포 플로우 (Gitea Actions)
## 배포 방식
1. **main 브랜치에 push**
2. **Gitea Actions** 자동 실행 (로컬 서버)
3. **nginx 설정 백업** (자동 백업)
4. **설정 검증** (nginx -t)
5. **nginx 설정 적용** (/etc/nginx/sites-available/default)
6. **nginx 서비스 reload** (무중단 적용)
7. **배포 검증** (자동 롤백 포함)
1. main 브랜치에 코드 변경 후 push
2. Gitea Actions가 자동으로 서버에 배포
3. 설정 오류 발생 시 자동 롤백
## 서버 설정
## 웹사이트 경로
### Gitea Actions 요구사항
- Ubuntu 22.04 LTS
- Gitea Actions 활성화
- admin 사용자 sudo NOPASSWD 권한
- nginx 서비스 실행 중
- `https://ro-being.com/` → 메인 페이지 (5173 포트)
- `https://ro-being.com/api/` → API 서버 (8000 포트)
- `https://ro-being.com/rb10508/` → 테스트 서버 (10508 포트)
### sudo 권한 설정
```bash
# /etc/sudoers.d/admin 파일 생성
sudo visudo -f /etc/sudoers.d/admin
# 다음 내용 추가:
admin ALL=(ALL) NOPASSWD: /usr/bin/cp, /usr/sbin/nginx, /bin/systemctl
```
## 프록시 라우팅
- `https://ro-being.com/` → 192.168.219.45:5173 (메인 프론트엔드)
- `https://ro-being.com/api/` → 192.168.219.45:8000 (frontend/backend)
- `https://ro-being.com/rb10508/` → 192.168.219.45:10508 (test_api)
## SSL 설정
서버 자체에 SSL 설정 완료:
- Ubuntu 서버에서 certbot으로 SSL 인증서 관리
- Docker 컨테이너는 8080 포트에서 HTTP만 처리
- 서버 nginx가 HTTPS → HTTP(8080) 프록시
## 로컬 테스트
## 상태 확인
```bash
# 서버에서 직접 실행
cd ~/robeing-nginx
docker compose up -d
# 로그 확인
docker compose logs -f nginx
# 내부 서비스 확인
curl http://localhost:8080
```
## 배포 상태 확인
```bash
# 서비스 상태 확인
# 서버 상태 확인
curl -I https://ro-being.com
# 컨테이너 상태 확인
docker compose ps
```# Test Actions trigger - 2025. 07. 14. (월) 17:20:43 KST
```