docs: README.md 현재 상황에 맞게 깔끔하게 재작성

- Ubuntu 서버 배포 방식으로 업데이트
- GitHub Actions SCP 방식 설명
- 불필요한 설정 제거
- 실제 사용 중인 프록시 라우팅 명시
- SSL 설정 및 테스트 방법 추가

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

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
happybell80 2025-07-09 15:07:39 +09:00
parent 4c2b20cfc6
commit 6fff59e3e2

View File

@ -1,60 +1,39 @@
# Nginx Deploy - Robeing Project
GitOps 방식으로 관리되는 Robeing 프로젝트의 배포 매니페스트 저장소입니다.
Ubuntu 서버용 Nginx 리버스 프록시 배포 저장소입니다.
## 구조
```
nginx-deploy/
├── .github/workflows/deploy.yml # GitHub Actions CI/CD
├── nginx/
│ ├── nginx.conf # Nginx 설정
│ └── Dockerfile # Nginx 컨테이너 빌드
└── docker-compose.yml # 전체 서비스 정의
├── .github/workflows/deploy.yml # GitHub Actions 배포 스크립트
├── default.conf # Nginx 설정 파일
├── docker-compose.yml # Docker Compose 정의
└── README.md # 이 파일
```
## 배포 플로우
1. **애플리케이션 저장소**에서 코드 변경 시
2. **GitHub Actions**가 새 이미지 빌드 후 Docker Hub에 push
3. **Webhook**으로 이 저장소의 `docker-compose.yml` 업데이트
4. **수동 또는 자동**으로 서버에 배포
1. **main 브랜치에 push**
2. **GitHub Actions** 자동 실행
3. **SCP로 파일 전송** (Ubuntu 서버 ~/robeing-nginx)
4. **Docker Compose** 자동 재시작
## 설정
## 서버 설정
### GitHub Secrets 설정
```
DOCKER_USERNAME: Docker Hub 사용자명
DOCKER_PASSWORD: Docker Hub 패스워드 또는 토큰
NAS_HOST: 124.55.18.179
NAS_PORT: 51123
NAS_USER: admin
NAS_SSH_KEY_ADMIN: SSH 개인키
```
### 환경 변수 설정
```bash
# .env 파일 생성
DATABASE_URL=postgresql://user:password@postgres:5432/robeing
REDIS_URL=redis://redis:6379/0
POSTGRES_USER=robeing
POSTGRES_PASSWORD=your-secure-password
```
## 배포 방법
### 개발 환경
```bash
docker-compose up -d
```
### 프로덕션 배포
```bash
# 환경 변수 설정 후
docker-compose -f docker-compose.yml up -d
```
## 서비스 구성
- **nginx**: 리버스 프록시 (포트 80, 443)
- **frontend/backend**: 통합 서버 (포트 18000)
- **api_base**: API 서버 (포트 8001)
### 서버 요구사항
- Ubuntu 22.04 LTS
- Docker & Docker Compose 설치
- admin 사용자 sudo 권한 (NOPASSWD)
- 포트 80, 443 오픈
## 프록시 라우팅
@ -62,10 +41,30 @@ docker-compose -f docker-compose.yml up -d
- `https://ro-being.com/api/` → 192.168.219.45:18000 (frontend/backend)
- `https://ro-being.com/rb8001/` → 192.168.219.45:8001 (api_base)
## Health Check
## SSL 설정
모든 서비스는 health check가 설정되어 있으며, `/health` 엔드포인트로 상태 확인 가능합니다.
Let's Encrypt를 통한 자동 SSL 인증서 발급:
- HTTP(80) → HTTPS(443) 자동 리다이렉트
- 도메인: ro-being.com
- 자동 갱신 설정
## 로컬 테스트
```bash
curl http://localhost/health
# 서버에서 직접 실행
cd ~/robeing-nginx
docker compose up -d
# 로그 확인
docker compose logs -f nginx
```
## 배포 상태 확인
```bash
# 서비스 상태 확인
curl -I https://ro-being.com
# 컨테이너 상태 확인
docker compose ps
```