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:
parent
4c2b20cfc6
commit
6fff59e3e2
85
README.md
85
README.md
@ -1,60 +1,39 @@
|
|||||||
# Nginx Deploy - Robeing Project
|
# Nginx Deploy - Robeing Project
|
||||||
|
|
||||||
GitOps 방식으로 관리되는 Robeing 프로젝트의 배포 매니페스트 저장소입니다.
|
Ubuntu 서버용 Nginx 리버스 프록시 배포 저장소입니다.
|
||||||
|
|
||||||
## 구조
|
## 구조
|
||||||
|
|
||||||
```
|
```
|
||||||
nginx-deploy/
|
nginx-deploy/
|
||||||
├── .github/workflows/deploy.yml # GitHub Actions CI/CD
|
├── .github/workflows/deploy.yml # GitHub Actions 배포 스크립트
|
||||||
├── nginx/
|
├── default.conf # Nginx 설정 파일
|
||||||
│ ├── nginx.conf # Nginx 설정
|
├── docker-compose.yml # Docker Compose 정의
|
||||||
│ └── Dockerfile # Nginx 컨테이너 빌드
|
└── README.md # 이 파일
|
||||||
└── docker-compose.yml # 전체 서비스 정의
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 배포 플로우
|
## 배포 플로우
|
||||||
|
|
||||||
1. **애플리케이션 저장소**에서 코드 변경 시
|
1. **main 브랜치에 push**
|
||||||
2. **GitHub Actions**가 새 이미지 빌드 후 Docker Hub에 push
|
2. **GitHub Actions** 자동 실행
|
||||||
3. **Webhook**으로 이 저장소의 `docker-compose.yml` 업데이트
|
3. **SCP로 파일 전송** (Ubuntu 서버 ~/robeing-nginx)
|
||||||
4. **수동 또는 자동**으로 서버에 배포
|
4. **Docker Compose** 자동 재시작
|
||||||
|
|
||||||
## 설정
|
## 서버 설정
|
||||||
|
|
||||||
### GitHub Secrets 설정
|
### GitHub Secrets 설정
|
||||||
```
|
```
|
||||||
DOCKER_USERNAME: Docker Hub 사용자명
|
NAS_HOST: 124.55.18.179
|
||||||
DOCKER_PASSWORD: Docker Hub 패스워드 또는 토큰
|
NAS_PORT: 51123
|
||||||
|
NAS_USER: admin
|
||||||
|
NAS_SSH_KEY_ADMIN: SSH 개인키
|
||||||
```
|
```
|
||||||
|
|
||||||
### 환경 변수 설정
|
### 서버 요구사항
|
||||||
```bash
|
- Ubuntu 22.04 LTS
|
||||||
# .env 파일 생성
|
- Docker & Docker Compose 설치
|
||||||
DATABASE_URL=postgresql://user:password@postgres:5432/robeing
|
- admin 사용자 sudo 권한 (NOPASSWD)
|
||||||
REDIS_URL=redis://redis:6379/0
|
- 포트 80, 443 오픈
|
||||||
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)
|
|
||||||
|
|
||||||
## 프록시 라우팅
|
## 프록시 라우팅
|
||||||
|
|
||||||
@ -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/api/` → 192.168.219.45:18000 (frontend/backend)
|
||||||
- `https://ro-being.com/rb8001/` → 192.168.219.45:8001 (api_base)
|
- `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
|
```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
|
||||||
```
|
```
|
||||||
Loading…
x
Reference in New Issue
Block a user